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笔试题
Aug 04 PHP
php 大数据量及海量数据处理算法总结
May 07 PHP
php session安全问题分析
Jun 24 PHP
php数组中删除元素之重新索引的方法
Sep 16 PHP
浅谈PHP解析URL函数parse_url和parse_str
Nov 11 PHP
ThinkPHP中I(),U(),$this-&gt;post()等函数用法
Nov 22 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
Jan 08 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
Sep 29 PHP
PHP使用file_get_contents发送http请求功能简单示例
Apr 29 PHP
php微信公众号开发之答题连闯三关
Oct 20 PHP
PHP实现关键字搜索后描红功能示例
Jul 03 PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
Nov 27 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 前一天或后一天的日期
2008/06/28 PHP
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
2012/04/09 PHP
php最简单的删除目录与文件实现方法
2014/11/28 PHP
服务器上配置PHP运行环境教程
2015/02/12 PHP
PHP中Session和Cookie是如何操作的
2015/10/10 PHP
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
2011/04/27 Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
2013/08/14 Javascript
js返回上一页并刷新的多种实现方法
2014/02/26 Javascript
JavaScript代码复用模式详解
2014/11/07 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
js验证上传图片的方法
2015/05/12 Javascript
Javascript中prototype的使用详解
2016/06/18 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
node.js基于mongodb的搜索分页示例
2017/01/22 Javascript
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
微信小程序实现上传图片功能
2018/05/28 Javascript
vue中axios实现数据交互与跨域问题
2019/05/12 Javascript
微信小程序实现弹幕墙(祝福墙)
2020/11/18 Javascript
Python中字典的基础知识归纳小结
2015/08/19 Python
python 调用HBase的简单实例
2016/12/18 Python
python爬虫入门教程--优雅的HTTP库requests(二)
2017/05/25 Python
获取python文件扩展名和文件名方法
2018/02/02 Python
Python基于生成器迭代实现的八皇后问题示例
2018/05/23 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
2018/12/29 Python
Pytorch中accuracy和loss的计算知识点总结
2019/09/10 Python
浅析PEP572: 海象运算符
2019/10/15 Python
举例详解HTML5中使用JSON格式提交表单
2015/06/16 HTML / CSS
怎样创建、运行java程序
2014/08/01 面试题
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
公司庆典活动邀请函
2014/01/09 职场文书
初中生物教学反思
2014/01/10 职场文书
龙门石窟导游词
2015/02/02 职场文书
节水宣传标语口号
2015/12/26 职场文书
解决Golang time.Parse和time.Format的时区问题
2021/04/29 Golang
Python 中面向接口编程
2022/05/20 Python