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 相关文章推荐
多重?l件?合查?(二)
Oct 09 PHP
PHP session常见问题集锦及解决办法总结
Mar 18 PHP
php下MYSQL limit的优化
Jan 10 PHP
提高PHP编程效率的53个要点(经验小结)
Sep 04 PHP
php源代码安装常见错误与解决办法分享
May 28 PHP
php输出全球各个时区列表的方法
Mar 31 PHP
PHP实现删除字符串中任何字符的函数
Aug 11 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
Oct 18 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
Feb 08 PHP
Thinkphp开发--集成极光推送
Sep 15 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
Jul 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
超人钢铁侠联手合作?美漫作家呼吁DC漫威合作联动以抵抗疫情
2020/04/09 欧美动漫
强烈推荐:php.ini中文版(1)
2006/10/09 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
php使用文本统计访问量的方法
2016/05/12 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
2016/09/13 PHP
为jQuery.Treeview添加右键菜单的实现代码
2010/10/22 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
2013/05/07 Javascript
JavaScript中的数组操作介绍
2014/12/30 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
2015/01/13 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
2015/11/05 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
微信小程序开发之IOS和Android兼容的问题
2017/09/26 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
2017/11/22 Javascript
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
解决vue单页面修改样式无法覆盖问题
2019/08/05 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
2020/04/01 Javascript
python网络编程学习笔记(三):socket网络服务器
2014/06/09 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
2017/08/03 Python
python实现批量修改文件名代码
2017/09/10 Python
python3获取当前文件的上一级目录实例
2018/04/26 Python
Django models.py应用实现过程详解
2019/07/29 Python
Python中sys模块功能与用法实例详解
2020/02/26 Python
Django正则URL匹配实现流程解析
2020/11/13 Python
python 基于opencv实现高斯平滑
2020/12/18 Python
皇家阿尔伯特英国官方商店:Royal Albert骨瓷
2019/03/25 全球购物
教师个人剖析材料
2014/02/05 职场文书
《乌塔》教学反思
2014/02/17 职场文书
西式婚礼主持词
2014/03/13 职场文书
化工工艺设计求职信
2014/06/25 职场文书
2015年社区党务工作总结
2015/04/21 职场文书
毕业论文答辩开场白
2015/05/27 职场文书
MYSQL 无法识别中文的永久解决方法
2021/06/03 MySQL
Python开发工具Pycharm的安装以及使用步骤总结
2021/06/24 Python
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang