php实现水印文字和缩略图的方法示例


Posted in PHP onDecember 29, 2016

本文实例讲述了php实现水印文字和缩略图的方法。分享给大家供大家参考,具体如下:

<?php
  $im = 'xiatian.jpg';
  $im2 = 'winter3.jpg';
  $img = getImage($im);
  $bimg = getImage($im2);
  //$image = getimagesize($im);
  //print_r($image);
  //Array ( [0] => 150 width
   /*[1] => 150 height
   [2] => 3 图片类型
   [3] => width="150" height="150"
   [bits] => 8
   [mime] => image/png )*/
  //图片复制组合------$bimg----
  imagecopy($bimg, $img, 300, 4, 0, 0, getWidth($im),getHeight($im));
  //加水印文字
  $color = imagecolorallocate($bimg,255, 255, 0);
  $str = "中国";
  $str = mb_convert_encoding($str, "html-entities","utf-8");
  imagettftext($bimg, 42, 0, rand(20,getWidth($im2)-100), rand(40,getHeight($im2)), $color, 'MSYH.TTF', $str);
  //剪切,重新生成缩略图
  $new = imagecreatetruecolor(50, 50);
  imagecopyresized($new, $bimg, 0, 0, 0, 0, 50, 50, getWidth($im2), getHeight($im2));
  //输出到浏览器
  header("Content-Type: image/jpeg");
  //如果为png图片也可正常显示,浏览器负责正确解析
  imagejpeg($new);
  //生成大图,小图
  imagejpeg($new,'small.jpg');
  imagejpeg($bimg,'big.jpg');
  function getImage($img_file) {
    $image = getimagesize($img_file);
    //判断是那种图片类型
    switch($image[2]) {
      case 1:
        $img = @imagecreatefromgif($img_file);
        break;
      case 2:
        $img = @imagecreatefromjpeg($img_file);
        break;
      case 3:
        $img = @imagecreatefrompng($img_file);
        break;
    }
    return $img;
  }
  function getWidth($img_file) {
    $image = getimagesize($img_file);
    return $image[0];
  }
  function getHeight($img_file) {
    $image = getimagesize($img_file);
    return $image[1];
  }
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
打造计数器DIY三步曲(中)
Oct 09 PHP
php echo()和print()、require()和include()函数区别说明
Mar 27 PHP
PHP 无限分类三种方式 非函数的递归调用!
Aug 26 PHP
php 启动时报错的简单解决方法
Jan 27 PHP
php中getservbyport与getservbyname函数用法实例
Nov 18 PHP
php判断两个浮点数是否相等的方法
Mar 14 PHP
PHP程序员不应该忽略的3点
Oct 09 PHP
php中分页及SqlHelper类用法实例
Jan 12 PHP
PHP批量修改文件名称的方法分析
Feb 27 PHP
PHP多种序列化/反序列化的方法详解
Jun 23 PHP
PHP时间处理类操作示例
Sep 05 PHP
总结PHP中初始化空数组的最佳方法
Feb 13 PHP
PHPMailer发送邮件
Dec 28 #PHP
PHP实现简单ajax Loading加载功能示例
Dec 28 #PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
Dec 28 #PHP
PHP执行shell脚本运行程序不产生core文件的方法
Dec 28 #PHP
PHP MYSQL简易交互式站点开发
Dec 27 #PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
Dec 27 #PHP
PHP面向对象程序设计类的定义与用法简单示例
Dec 27 #PHP
You might like
php反弹shell实现代码
2009/04/22 PHP
PHP判断是否有Get参数的方法
2014/05/05 PHP
PHP使用GD库输出汉字的方法【测试可用】
2016/11/10 PHP
疯掉了,尽然有js写的操作系统
2007/04/23 Javascript
学习面向对象之面向对象的基本概念:对象和其他基本要素
2010/11/30 Javascript
JQuery中serialize()、serializeArray()和param()方法示例介绍
2014/07/31 Javascript
jQuery实现视频作为全屏幕背景
2014/12/18 Javascript
JavaScript返回网页中锚点数目的方法
2015/04/03 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
2015/12/18 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
Node.js 实现简单小说爬虫实例
2016/11/18 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
实现div滚动条默认最底部以及默认最右边的示例代码
2017/11/15 Javascript
如何开发出更好的JavaScript模块
2017/12/22 Javascript
vue.js打包之后可能会遇到的坑!
2018/06/03 Javascript
推荐一个基于Node.js的表单验证库
2019/02/15 Javascript
nodejs二进制与Buffer的介绍与使用
2019/07/11 NodeJs
jQuery HTML获取内容和属性操作实例分析
2020/05/20 jQuery
详解JSON.stringify()的5个秘密特性
2020/05/26 Javascript
python里对list中的整数求平均并排序
2014/09/12 Python
实例解析Python设计模式编程之桥接模式的运用
2016/03/02 Python
pygame游戏之旅 载入小车图片、更新窗口
2018/11/20 Python
pycharm配置当鼠标悬停时快速提示方法参数
2019/07/31 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
python函数的作用域及关键字详解
2019/08/20 Python
python处理excel绘制雷达图
2019/10/18 Python
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
C#基础面试题
2016/10/17 面试题
大一学生的职业生涯规划书范文
2014/01/19 职场文书
党支部公开承诺书
2014/03/28 职场文书
《陈毅探母》教学反思
2014/05/01 职场文书
施工单位工程部经理岗位职责
2015/04/09 职场文书
领导离职感言
2015/08/03 职场文书
如何判断微信付款码和支付宝付款码
2021/04/01 PHP
Python异常类型以及处理方法汇总
2021/06/05 Python
MySQL多表查询机制
2022/03/17 MySQL