PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】


Posted in PHP onDecember 20, 2019

本文实例讲述了PHP的图像处理。分享给大家供大家参考,具体如下:

1、添加文字水印

//1、打开图片资源
  $src="./material/sea.jpg";
  $info=getimagesize($src);//获取图片信息
  $type=image_type_to_extension($info[2],false);//转化图片类型
  //var_dump($info);
  $fun="imagecreatefrom{$type}";//拼接成为imagecreatefromjpeg()方法
  $image=$fun($src);//新建GD图片资源
//操作图片
  $font="./material/segoepr.ttf";
  $content="@SuperTory";
  $color=imagecolorallocate($image,255,255,255);
  imagettftext($image,10,0,0,$info[1]-5,$color,$font,$content);//图片上写文字
//输出图片
  header("content-type:".$info['mime']);//$imfo['mine']='image/jpeg'
  $output="image{$type}";//拼接成为imagejpeg()方法
  $output($image);//输出到页面
  $output($image,'./material/watermarked.'.$type);//输出到本地路径
//销毁图片内存资源
  imagedestroy($image);

2、压缩图像

//打开图像
$src="./material/logo.png";
$info=getimagesize($src);
$type=image_type_to_extension($info[2],false);
$create="imagecreatefrom".$type;
$image=$create($src);
//压缩
$tinyImg=imagecreatetruecolor(100,100); //新建压缩后的图像资源
//将原图映射到压缩后的图像资源上
imagecopyresampled($tinyImg,$image,0,0,0,0,100,100,$info[0],$info[1]);
header("content-type:".$info['mime']);
$output="image{$type}";
//$output($image);
$output($tinyImg);
//销毁
imagedestroy($image);
imagedestroy($tinyImg);

3、添加水印图片

//获取原图片
$src="./material/sea.jpg";
$info=getimagesize($src);
$type=image_type_to_extension($info[2],false);
$create="imagecreatefrom".$type;
$image=$create($src);
//获取水印图片资源
$markSrc="./material/logo.png";
$markInfo=getimagesize($markSrc);
$markType=image_type_to_extension($markInfo[2],false);
$create="imagecreatefrom".$markType;
$markImage=$create($markSrc);
$tinyImg=imagecreatetruecolor(100,100);
imagecopyresampled($tinyImg,$markImage,0,0,0,0,
  100,100,$markInfo[0],$markInfo[1]);
imagecopymerge($image,$tinyImg,$info[0]-100,$info[1]-100,
  0,0,100,100,100);
//合并图片:(原图,水印图,原图x位置,原图y位置,水印x起点,水印y起点,水印x终点,水印y终点,不透明度)
header("content-type:".$info['mime']);
$output="image{$type}";
$output($image);
imagedestroy($image);
imagedestroy($markImage);

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

PHP 相关文章推荐
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
Jul 16 PHP
php中使用$_REQUEST需要注意的一个问题
May 02 PHP
PHP中的use关键字概述
Jul 23 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
Sep 22 PHP
php is_executable判断给定文件名是否可执行实例
Sep 26 PHP
php实现批量上传数据到数据库(.csv格式)的案例
Jun 18 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
Aug 05 PHP
laravel框架语言包拓展实现方法分析
Nov 22 PHP
PHP中用Trait封装单例模式的实现
Dec 18 PHP
php libevent 功能与使用方法详解
Mar 04 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
Mar 24 PHP
Laravel框架处理用户的请求操作详解
Dec 20 #PHP
PHP上传图片到数据库并显示的实例代码
Dec 20 #PHP
ThinkPHP类似AOP思想的参数验证的实现方法
Dec 18 #PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 #PHP
PHP中用Trait封装单例模式的实现
Dec 18 #PHP
PHP实现微信公众号验证Token的示例代码
Dec 16 #PHP
浅析PHP中的 inet_pton 网络函数
Dec 16 #PHP
You might like
实测在class的function中include的文件中非php的global全局环境
2013/07/15 PHP
php中filter_input函数用法分析
2014/11/15 PHP
php管理nginx虚拟主机shell脚本实例
2014/11/19 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
jQuery焦点图轮播特效代码分享(3款)
2015/09/05 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
2016/08/02 Javascript
在localStorage中存储对象数组并读取的方法
2016/09/24 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
微信小程序如何获知用户运行小程序的场景教程
2017/05/17 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
详解react-router 4.0 下服务器如何配合BrowserRouter
2017/12/29 Javascript
vue项目国际化vue-i18n的安装使用教程
2018/03/14 Javascript
Vue.js中 v-model 指令的修饰符详解
2018/12/03 Javascript
微信小程序实现判断是分享到群还是个人功能示例
2019/05/03 Javascript
python文件和目录操作函数小结
2014/07/11 Python
Python类的继承和多态代码详解
2017/12/27 Python
python如何将图片转换为字符图片
2020/08/19 Python
Python-OpenCV基本操作方法详解
2018/04/02 Python
python实现三维拟合的方法
2018/12/29 Python
Python turtle库绘制菱形的3种方式小结
2019/11/23 Python
使用python turtle画高达
2020/01/19 Python
postman和python mock测试过程图解
2020/02/22 Python
python中format函数如何使用
2020/06/22 Python
termux中matplotlib无法显示中文问题的解决方法
2021/01/11 Python
css3简单练习实现遨游浏览器logo的绘制
2013/01/30 HTML / CSS
详解webapp页面滚动卡顿的解决办法
2018/12/26 HTML / CSS
高中生自我评价个人范文
2013/11/09 职场文书
预备党员思想汇报范文
2014/01/11 职场文书
安全生产检讨书
2014/01/21 职场文书
爱情寄语大全
2014/04/09 职场文书
党委班子对照检查材料
2014/08/19 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
儿子满月酒致辞
2015/07/29 职场文书
初二数学教学反思
2016/02/17 职场文书
《搭石》教学反思
2016/02/18 职场文书
浅析Redis Sentinel 与 Redis Cluster
2021/06/24 Redis