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 相关文章推荐
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
Sep 02 PHP
PHP 冒泡排序算法的实现代码
Aug 08 PHP
ueditor 1.2.6 使用方法说明
Jul 24 PHP
php保存信息到当前Session的方法
Mar 16 PHP
php生成二维码
Aug 10 PHP
Zend Framework动作助手FlashMessenger用法详解
Mar 05 PHP
Windows2003下php5.4安装配置教程(IIS)
Jun 30 PHP
thinkPHP5.0框架安装教程
Mar 25 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
Aug 11 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
PHP标准库(PHP SPL)详解
Mar 16 PHP
PHP实现rar解压读取扩展包小结
Jun 03 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
php面向对象全攻略 (七) 继承性
2009/09/30 PHP
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
php购物车实现方法
2015/01/03 PHP
PHP中使用BigMap实例
2015/03/30 PHP
YII Framework框架教程之安全方案详解
2016/03/14 PHP
laravel多条件查询方法(and,or嵌套查询)
2019/10/09 PHP
JS基础之undefined与null的区别分析
2011/08/08 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
2014/06/15 Javascript
javascript 中__proto__和prototype详解
2014/11/25 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
JavaScript中使用concat()方法拼接字符串的教程
2015/06/06 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
jQuery常用知识点总结以及平时封装常用函数
2016/02/23 Javascript
详解vue.js2.0父组件点击触发子组件方法
2017/05/10 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
JS+canvas动态绘制饼图的方法示例
2017/09/12 Javascript
Vue Prop属性功能与用法实例详解
2019/02/23 Javascript
使用kbone解决Vue项目同时支持小程序问题
2019/11/08 Javascript
webpack proxy 使用(代理的使用)
2020/01/10 Javascript
python实现数据导出到excel的示例--普通格式
2018/05/03 Python
python分割一个文本为多个文本的方法
2019/07/22 Python
Python性能分析工具Profile使用实例
2019/11/19 Python
Python生态圈图像格式转换问题(推荐)
2019/12/02 Python
Python爬虫JSON及JSONPath运行原理详解
2020/06/04 Python
HEMA法国:荷兰原创设计
2019/02/21 全球购物
毕业求职自荐信格式是什么
2013/11/19 职场文书
中文师范生自荐信
2014/01/30 职场文书
公司募捐倡议书
2014/05/14 职场文书
基本公共卫生服务健康教育工作方案
2014/05/22 职场文书
2014个人年终工作总结范文
2014/12/15 职场文书
万里长城导游词
2015/01/30 职场文书
企业战略合作意向书
2015/05/08 职场文书
基于PyTorch实现一个简单的CNN图像分类器
2021/05/29 Python
为什么在foreach循环中JAVA集合不能添加或删除元素
2021/06/11 Java/Android
MySQL千万级数据表的优化实战记录
2021/08/04 MySQL
js不常见操作运算符总结
2021/11/20 Javascript