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 相关文章推荐
资料注册后发信小技巧
Oct 09 PHP
PHP 代码规范小结
Mar 08 PHP
PHP UTF8中文字符截断函数代码
Sep 11 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
Jul 22 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
Nov 14 PHP
PHP生成不重复随机数的方法汇总
Nov 19 PHP
thinkphp的静态缓存用法分析
Nov 29 PHP
用PHP生成excel文件到指定目录
Jun 22 PHP
纯PHP代码实现支付宝批量付款
Dec 24 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
Feb 13 PHP
php7 新增功能实例总结
May 25 PHP
php7 错误处理机制修改实例分析
May 25 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实现文件下载功能的几个代码分享
2014/05/10 PHP
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
2011/02/12 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
js实现同一页面多个运动效果的方法
2015/04/10 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
JS实现关闭当前页而不弹出提示框的方法
2016/06/22 Javascript
Vue.directive自定义指令的使用详解
2017/03/10 Javascript
JavaScript使用FileReader实现图片上传预览效果
2020/03/27 Javascript
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
js this 绑定机制深入详解
2020/04/30 Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
2020/08/18 Javascript
使用Python生成随机密码的示例分享
2016/02/18 Python
web.py 十分钟创建简易博客实现代码
2016/04/22 Python
浅谈五大Python Web框架
2017/03/20 Python
opencv改变imshow窗口大小,窗口位置的方法
2018/04/02 Python
Scrapy使用的基本流程与实例讲解
2018/10/21 Python
在python中将字符串转为json对象并取值的方法
2018/12/31 Python
CSS3中Transition动画属性用法详解
2016/07/04 HTML / CSS
利用Node实现HTML5离线存储的方法
2020/10/16 HTML / CSS
Jdbc数据访问技术面试题
2012/03/30 面试题
留学自荐信
2013/10/10 职场文书
幼儿园英语教学反思
2014/01/30 职场文书
实验教师岗位职责
2014/02/13 职场文书
消防标语大全
2014/06/07 职场文书
园林系毕业生求职信
2014/06/23 职场文书
2015年信贷员工作总结
2015/04/28 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书
小学中队委竞选稿
2015/11/20 职场文书
Go语言的协程上下文的几个方法和用法
2022/04/11 Golang