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
您可能感兴趣
- phpstudymysql数据库启动不了(phpstudy mysql启动不了的解决方法)
- php 数据库查询并写入(PHP实现单条sql执行多个数据的insert语句方法)
- php开发api接口登录(PHP调用接口API封装的例子)
- php代码生成器(PHP迭代器和生成器用法实例分析)
- phpstudy中php用什么版本(phpstudy是什么?phpstudy有什么用?)
- php联合注入列表总结(php中的依赖注入实例详解)
- php7.4类型属性实例详解(PHP 7.4中使用预加载的方法详解)
- thinkphp返回json(thinkphp5框架实现数据库读取的数据转换成json格式示例)
- phpstudy中apache到期如何修改(phpStudy找不到Apache“服务名” 解决方法)
- phpstudy服务器怎么设置(phpstudy本地环境开启.htaccess伪静态方法)
- php开发详细步骤(php源码的安装方法和实例)
- php性能比较(php使用yield对性能提升的测试实例分析)
- php数据类型图解(php使用filter_var函数判断邮箱,url,ip格式示例)
- phpredis存储对象(PHP使用redis位图bitMap 实现签到功能)
- thinkphp权限认证怎么用(ThinkPHP框架结合Ajax实现用户名校验功能示例)
- php中row函数(PHP中number_format函数的用法讲解)
- 每天1万吨牛奶倒进下水道,美国大萧条一幕重现(每天1万吨牛奶倒进下水道)
- 如何看待美国数十万加仑牛奶倒下水道 历史又重演了(如何看待美国数十万加仑牛奶倒下水道)
- 历史惊人的相似,美国80万加仑牛奶倒入下水道,意味着什么(历史惊人的相似)
- 美国数十万加仑牛奶倒进下水道,世界会重演1929年的大萧条吗(美国数十万加仑牛奶倒进下水道)
- 美国数十万加仑牛奶倒入下水道,贫民区食不果腹,历史再次重演(美国数十万加仑牛奶倒入下水道)
- 美国倒掉数十万加仑牛奶 上热搜第一,这一幕似曾相识(美国倒掉数十万加仑牛奶)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9