php去水印方法(PHP开发的文字水印,缩略图,图片水印实现类与用法示例)
类别:编程学习 浏览量:1995
时间:2022-03-29 03:52:02 php去水印方法
PHP开发的文字水印,缩略图,图片水印实现类与用法示例本文实例讲述了PHP开发的文字水印,缩略图,图片水印实现类与用法。分享给大家供大家参考,具体如下:
1.实现类ImageToTest.class.php参考代码
|
class ImageToTest { /** * 图片的基本信息 */ private $info ; private $image ; public function __construct( $src ){ $info = getimagesize ( $src ); $this ->info = array ( 'width' => $info [0], 'height' => $info [1], 'type' => image_type_to_extension( $info [2],false), 'mime' => $info [ 'mime' ] ); $fun = "imagecreatefrom{$this->info['type']}" ; $this ->image = $fun ( $src ); } /** * 操作图片 (压缩) */ public function thumb( $width , $height ){ $image_thumb = imagecreatetruecolor( $width , $height ); imagecopyresampled( $image_thumb , $this ->image,0,0,0,0, $width , $height , $this ->info[ 'width' ], $this ->info[ 'height' ]); imagedestroy( $this ->image); $this ->image = $image_thumb ; } /** * 操作图片(添加文字水印) */ public function fontMark( $content , $font_url , $size , $color , $local , $angle ){ $col = imagecolorallocatealpha( $this ->image, $color [0], $color [1], $color [2], $color [3]); imagettftext( $this ->image, $size , $angle , $local [ 'x' ], $local [ 'y' ], $col , $font_url , $content ); } /** * 操作图片(添加水印图片) */ public function imageMark( $source , $local , $alpha ){ //1.获取水印图片的基本信息 $info2 = getimagesize ( $source ); //2.通过水印的图片编号来获取水印的图片类型 $type2 = image_type_to_extension( $info2 [2],false); //3.在内存中创建一个和我们的水印图像一致的图像类型 $func2 = "imagecreatefrom{$type2}" ; //4.把水印图片复制到内存中 $water = $func2 ( $source ); //5.合并图片 imagecopymerge( $this ->image, $water , $local [ 'x' ], $local [ 'y' ],0,0, $info2 [0], $info2 [1], $alpha ); //6.销毁水印图片 imagedestroy( $water ); } /** * 在浏览器中输出图片 */ public function show(){ header( "Content-type:" . $this ->info[ 'mime' ]); $funs = "image{$this->info['type']}" ; $funs ( $this ->image); } /** * 把图片保存到硬盘里 */ public function save( $newName ){ $funs = "image{$this->info['type']}" ; $funs ( $this ->image, './outPut/' . $newName . '.' . $this ->info[ 'type' ]); } /** * 销毁图片 使用析构函数 */ public function __destruct() { imagedestroy( $this ->image); } } |
2.测试参考代码
|
require_once ( 'ImageToTest.class.php' ); /*$src = './image/wbg.jpg'; $image = new ImageToTest($src); $image->thumb(700,550); $image->show();*/ /*$src2 = './image/wbg.jpg'; $content = 'SGC'; $font_url = './image/YGYcuhei.ttf'; $size = 33; $color = array( 0=>2, 1=>222, 2=>222, 3=>60 ); $local = array( 'x'=>20, 'y'=>100 ); $angle = 10; $image2 = new ImageToTest($src2); $image2->fontMark($content,$font_url,$size,$color,$local,$angle); $image2->show(); $image2->save('hahahah');*/ $src3 = './image/wbg.jpg' ; $source = './image/water.jpg' ; $local = array ( 'x' =>20, 'y' =>100 ); $font_url = './image/YGYcuhei.ttf' ; $size = 38; $color = array ( 0=>2, 1=>222, 2=>222, 3=>60 ); $alpha = 60; $angle = 50; $image3 = new ImageToTest( $src3 ); $image3 ->imageMark( $source , $local , $alpha ); $image3 ->thumb(700,550); $image3 ->fontMark( 'Hello' , $font_url , $size , $color , $local , $angle ); $image3 ->show(); $image3 ->save( 'WAWAWAWAWA' ); |
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/u011415782/article/details/51598081
您可能感兴趣
- php包含哪些(php文件包含的几种方式总结)
- php封装api(PHP常用的类封装小结4个工具类)
- linux安装phpstudy(PHPStudy下如何为Apache安装SSL证书的方法步骤)
- php可忽略大小写的模式符(PHP基于timestamp和nonce实现的防止重放攻击方案分析)
- thinkphp5单例原理(Thinkphp5框架简单实现钩子Hook行为的方法示例)
- phpstudy数据库搭建教程交流(phpStudy V8如何修改数据库root密码)
- linux安装php目录路径修改(ubuntu环境下的php相关路径与修改方法)
- php实现无cookie的session(php实现多站点共用session实现单点登录的方法详解)
- php 获取证书列表(用PHP做了一个领取优惠券活动的示例代码)
- php环境搭建windows系统(Windows环境下安装PHP Pear的方法图文教程)
- php开发各种问题(解决php extension 加载顺序问题)
- 怎么用php开发验证码(PHP简单验证码功能机制实例详解)
- php7.4 废弃功能(浅析PHP7 的垃圾回收机制)
- wordpress的静态php页面在哪(如何让PHPnow支持wordpress静态化链接的方法)
- php标签怎么写(php 使用mpdf实现指定字段配置字体样式的方法)
- php经典算法大全(php菜单/评论数据递归分级算法的实现方法)
- 蓝底证件照怎么制作 证件照换底色 换尺寸快速搞定(蓝底证件照怎么制作)
- 你喜欢足球吗 足球如何点亮世界的(足球如何点亮世界的)
- 不可分鸽是什么梗(不可分鸽是什么梗)
- 古代的鸽子是爱情的象征,并非和平的使者(古代的鸽子是爱情的象征)
- 一课译词 放鸽子(一课译词放鸽子)
- 终于来了,淘宝更改账户名测试中,快去看看你能不能修改(淘宝更改账户名测试中)
热门推荐
- javascript检测内容改变了(JavaScript 检测文件的类型的方法)
- vue身份验证(详解vue身份认证管理和租户管理)
- mysql重新安装失败
- div中设置图片的大小(div或img图片高度随宽度自适应的方法)
- ASP.NET将WORD、PDF、PPT转为图片
- css布局图解(浅谈CSS三栏布局的N种实现)
- 自定义ui组件的三个重要方法(AmazeUI 面板的实现示例)
- mysql字段多有什么问题(MySQL编码不一致可能引起的一些问题)
- ftp服务器怎么搭建linux(Linux下使用vsftp搭建FTP服务器附参数说明)
- docker进入mysql查看路径(Docker 环境运行 Mysql 和开启 Binlog 配置主从同步的设置方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9