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生成带有雪花背景的验证码
Oct 09 PHP
php getsiteurl()函数
Sep 05 PHP
在WINDOWS中设置计划任务执行PHP文件的方法
Dec 19 PHP
php网上商城购物车设计代码分享
Feb 15 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
Sep 19 PHP
PHP获取某个月最大天数(最后一天)的方法
Jul 29 PHP
php实现json编码的方法
Jul 30 PHP
php session的锁和并发
Jan 22 PHP
yii2实现根据时间搜索的方法
May 25 PHP
php实现图片上传时添加文字和图片水印技巧
Apr 18 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
Dec 13 PHP
PHP7创建销毁session的实例方法
Feb 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 中的str_replace 函数总结
2007/04/27 PHP
一道关于php变量引用的面试题
2010/08/08 PHP
Thinkphp中的curd应用实用要点
2015/01/04 PHP
php抽象方法和抽象类实例分析
2016/12/07 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
jquery入门——事件机制之事件中的冒泡现象示例解释
2020/09/12 Javascript
jquery自动填充勾选框即把勾选框打上true
2014/03/24 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
2014/04/08 Javascript
浅谈javascript 函数内部属性
2015/01/21 Javascript
详解AngularJS中的作用域
2015/06/17 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
jQuery插件formValidator实现表单验证
2016/05/23 Javascript
jQuery获取多种input值的简单实现方法
2016/06/20 Javascript
nodejs加密Crypto的实例代码
2016/07/07 NodeJs
Javascript获取图片原始宽度和高度的方法详解
2016/09/20 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
2017/12/09 Javascript
浅谈Vue Element中Select下拉框选取值的问题
2018/03/01 Javascript
react项目实践之webpack-dev-serve
2018/09/14 Javascript
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
2019/12/12 Javascript
[01:33:30]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第二场 2月5日
2021/03/11 DOTA
Python PyQt5标准对话框用法示例
2017/08/23 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
2019/07/08 Python
Django框架反向解析操作详解
2019/11/28 Python
python实现双色球随机选号
2020/01/01 Python
安全生产检查通报
2014/01/29 职场文书
电厂职工自我鉴定
2014/02/20 职场文书
夜不归宿检讨书
2014/02/25 职场文书
考试作弊被抓检讨书
2014/10/02 职场文书
学院党委班子四风问题自查报告及整改措施
2014/10/25 职场文书
助学金感谢信
2015/01/20 职场文书
大雁塔英文导游词
2015/02/10 职场文书
中学社团活动总结
2015/05/07 职场文书
负责培养人意见
2015/06/05 职场文书
详解Spring事件发布与监听机制
2021/06/30 Java/Android
Go语言grpc和protobuf
2022/04/13 Golang