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数据浏览器
Oct 09 PHP
php+mysql分页代码详解
Mar 27 PHP
php中time()和mktime()方法的区别
Sep 28 PHP
php实现汉字验证码和算式验证码的方法
Mar 07 PHP
php检查是否是ajax请求的方法
Apr 16 PHP
详解PHP安装mysql.so扩展的方法
Dec 31 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
PHP编程实现的TCP服务端和客户端功能示例
Apr 13 PHP
laravel5.1框架model类查询的实现方法
Oct 08 PHP
laravel高级的Join语法详解以及使用Join多个条件
Oct 16 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 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
使用php4加速网络传输
2006/10/09 PHP
php中定时计划任务的实现原理
2013/01/08 PHP
基于PHP遍历数组的方法汇总分析
2013/06/08 PHP
php die()与exit()的区别实例详解
2016/12/03 PHP
深入解析PHP底层机制及相关原理
2020/12/11 PHP
js传值 判断
2006/10/26 Javascript
js验证模型自我实现的具体方法
2013/06/21 Javascript
jQuery中has()方法用法实例
2015/01/06 Javascript
JS控制弹出新页面窗口位置和大小的方法
2015/03/02 Javascript
纯javascript实现分页(两种方法)
2015/08/26 Javascript
jQuery 限制输入字符串长度
2016/06/20 Javascript
详解基于angular路由的requireJs按需加载js
2017/01/20 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
2017/04/07 Javascript
JavaScript实现设置默认日期范围为最近40天的方法分析
2017/07/12 Javascript
在vue项目中安装使用Mint-UI的方法
2017/12/27 Javascript
Vue中v-show添加表达式的问题(判断是否显示)
2018/03/26 Javascript
微信小程序实现顶部下拉菜单栏
2018/11/04 Javascript
mpvue 页面预加载新增preLoad生命周期的两种方式
2019/10/17 Javascript
[45:15]Optic vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Python使用matplotlib绘制正弦和余弦曲线的方法示例
2018/01/06 Python
简单的python协同过滤程序实例代码
2018/01/31 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
css3让div随鼠标移动而抖动起来
2014/02/10 HTML / CSS
canvas线条的属性详解
2018/03/27 HTML / CSS
戴尔加拿大官网:Dell加拿大
2016/09/17 全球购物
美国女士时尚珠宝及配饰购物网站:Icing
2018/07/02 全球购物
泰国健康和美容服务预订网站:GoWabi
2019/06/03 全球购物
十八届三中全会个人学习材料
2014/02/13 职场文书
酒店爱岗敬业演讲稿
2014/09/02 职场文书
六年级小学生评语
2014/12/26 职场文书
一封真诚的自荐信帮你赢得机会
2019/05/07 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
Html5新增了哪些功能
2021/04/16 HTML / CSS
Django 实现jwt认证的示例
2021/04/30 Python
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python
html中两种获取标签内的值的方法
2022/06/10 HTML / CSS