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 相关文章推荐
echo, print, printf 和 sprintf 区别
Dec 06 PHP
php下intval()和(int)转换使用与区别
Jul 18 PHP
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
Nov 10 PHP
PHP连接MongoDB示例代码
Sep 06 PHP
PHP定时更新程序设计思路分享
Jun 10 PHP
PHP实现图片裁剪、添加水印效果代码
Oct 01 PHP
PHP实现动态柱状图改进版
Mar 30 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
Jul 03 PHP
PHP微信开发之文本自动回复
Jun 23 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
Apr 27 PHP
老生常谈PHP中的数据结构:DS扩展
Jul 17 PHP
PHP rsa加密解密算法原理解析
Dec 09 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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
将博客园(cnblogs.com)数据导入到wordpress的代码
2013/01/06 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
ZF框架实现发送邮件的方法
2015/12/03 PHP
PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析
2016/04/04 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
2016/08/01 PHP
PHP 等比例缩放图片详解及实例代码
2016/09/18 PHP
js之onload事件的一点使用心得
2013/08/14 Javascript
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
javascript的变量、传值、传址、参数之间关系
2015/07/26 Javascript
解决JavaScript数字精度丢失问题的方法
2015/12/03 Javascript
JavaScript实现自定义媒体播放器方法介绍
2017/01/03 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
react实现一个优雅的图片占位模块组件详解
2017/10/30 Javascript
微信小程序倒计时功能实现代码
2017/11/09 Javascript
Dropify.js图片宽高自适应的方法
2017/11/27 Javascript
JS高级技巧(简洁版)
2018/07/29 Javascript
Vue2.x中利用@font-size引入字体图标报错的解决方法
2018/09/28 Javascript
vue中created和mounted的区别浅析
2019/08/13 Javascript
Node快速切换版本、版本回退(降级)、版本更新(升级)
2021/01/07 Javascript
Python批量修改文件后缀的方法
2014/01/26 Python
python动态网页批量爬取
2016/02/14 Python
Python算法之图的遍历
2017/11/16 Python
Python使用zip合并相邻列表项的方法示例
2018/03/17 Python
详解flask表单提交的两种方式
2018/07/21 Python
Python脚本按照当前日期创建多级目录
2019/03/01 Python
python可视化实现KNN算法
2019/10/16 Python
三星印度官网:Samsung印度
2019/08/03 全球购物
索桥的故事教学反思
2014/02/06 职场文书
离职报告范文
2014/11/04 职场文书
自愿离婚协议书范本
2015/01/26 职场文书
换届选举主持词
2015/07/03 职场文书
医务人员岗前培训心得体会
2016/01/08 职场文书
浅谈如何写好演讲稿?
2019/06/12 职场文书
2019最新版火锅店的创业计划书 !
2019/07/12 职场文书
Python 如何利用ffmpeg 处理视频素材
2021/11/27 Python