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 相关文章推荐
十天学会php之第四天
Oct 09 PHP
php的array_multisort()使用方法介绍
May 16 PHP
基于PHP读取csv文件内容的详解
Jun 18 PHP
php输出金字塔的2种实现方法
Dec 16 PHP
使用 PHPStorm 开发 Laravel
Mar 24 PHP
PHP生成plist数据的方法
Jun 16 PHP
PHP中COOKIES使用示例
Jul 26 PHP
WordPress中对访客评论功能的一些优化方法
Nov 24 PHP
PHP几个实用自定义函数小结
Jan 25 PHP
PHP动态生成指定大小随机图片的方法
Mar 25 PHP
PHP生成各种随机验证码的方法总结【附demo源码】
Jun 05 PHP
实例讲解通过​PHP创建数据库
Jan 20 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不使用递归的无限级分类简单实例
2016/11/05 PHP
php查询及多条件查询
2017/02/26 PHP
THINKPHP截取中文字符串函数实例代码
2017/03/20 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
js 获取服务器控件值的代码
2010/03/05 Javascript
JS 有名函数表达式全面解析
2010/03/19 Javascript
Javascript类库的顶层对象名用户体验分析
2010/10/24 Javascript
JavaScript中OnLoad几种使用方法
2012/12/15 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
如何正确使用javascript 来进行我们的程序开发
2014/06/23 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
node.js超时timeout详解
2014/11/26 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
基于JS对象创建常用方式及原理分析
2017/06/28 Javascript
webpack构建react多页面应用详解
2017/09/15 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
通过seajs实现JavaScript的模块开发及按模块加载
2019/06/06 Javascript
[48:32]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs VG
2018/04/01 DOTA
[57:28]2018DOTA2亚洲邀请赛 4.6 淘汰赛 TNC vs Liquid 第一场
2018/04/10 DOTA
使用Python编写简单的端口扫描器的实例分享
2015/12/18 Python
详解python之协程gevent模块
2018/06/14 Python
python 对txt中每行内容进行批量替换的方法
2018/07/11 Python
解决python线程卡死的问题
2019/02/18 Python
在python里从协程返回一个值的示例
2019/02/19 Python
如何在pycharm中安装第三方包
2020/10/27 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
单位委托书范本
2014/04/04 职场文书
政府绩效管理实施方案
2014/05/04 职场文书
机关职员工作检讨书
2014/10/23 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
售房协议书范本
2015/08/11 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python
CSS浮动引起的高度塌陷问题
2022/08/05 HTML / CSS