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 相关文章推荐
让你同时上传 1000 个文件 (一)
Oct 09 PHP
基于PHP magic_quotes_gpc的使用方法详解
Jun 24 PHP
PHP的构造方法,析构方法和this关键字详细介绍
Oct 22 PHP
基于php的微信公众平台开发入门实例
Apr 15 PHP
PHP实现的memcache环形队列类实例
Jul 28 PHP
WordPress的文章自动添加关键词及关键词的SEO优化
Mar 01 PHP
PHP 二级子目录(后台目录)设置二级域名
Mar 02 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 PHP
PHP封装的XML简单操作类完整实例
Nov 13 PHP
php输出文字乱码的解决方法
Oct 04 PHP
PHP判断当前使用的是什么浏览器(推荐)
Oct 27 PHP
php-7.3.6 编译安装过程
Feb 11 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将对象转换成数组的方法(兼容多维数组类型)
2013/06/21 PHP
PHP 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
HTML中不支持静态Expando的元素的问题
2007/03/08 Javascript
jQuery开发者都需要知道的5个小技巧
2010/01/08 Javascript
javascript的console.log()用法小结
2012/05/31 Javascript
javaScript array(数组)使用字符串作为数组下标的方法
2013/11/19 Javascript
javascript删除option选项的多种方法总结
2013/11/22 Javascript
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
innerText 使用示例
2014/01/23 Javascript
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
jQuery源码解读之removeClass()方法分析
2015/02/20 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
jquery实现具有嵌套功能的选项卡
2016/02/12 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
用JS实现图片轮播效果代码(一)
2016/06/26 Javascript
JS本地刷新返回上一页代码
2016/07/25 Javascript
关于javascript中限定时间内防止按钮重复点击的思路详解
2016/08/16 Javascript
微信小程序之picker日期和时间选择器
2017/02/09 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
Ubuntu中配置TensorFlow使用环境的方法
2020/04/21 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
2020/07/03 Python
详解numpy1.19.4与python3.9版本冲突解决
2020/12/15 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
Python与C/C++的相互调用案例
2021/03/04 Python
老生常谈CSS中的长度单位
2016/06/27 HTML / CSS
篝火晚会主持词
2014/03/25 职场文书
合伙协议书范本
2014/04/21 职场文书
银行党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
学生病假条怎么写
2015/08/17 职场文书
详解nodejs内置模块
2021/05/06 NodeJs
HTML5基础学习之文本标签控制
2022/03/25 HTML / CSS
Python实现批量将文件复制到新的目录中再修改名称
2022/04/12 Python