您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

php图片水印添加、压缩、剪切的封装类

2024/6/1 1:19:25发布27次查看
php对图片文件的操作主要是利用gd库扩展。当我们频繁利用php对图片进行操作时,会自然封装很多函数,否则会写太多重复的代码。当有很多对图片的相关函数的时候,我们可以考虑将这些php函数也整理一下,因而就有了封装成类的想法。那我们就来看看以下是怎么封装的吧!
操作图片主要历经四个步骤:
打开图片
操作图片
输出图片
销毁图片
1,3,4三个步骤每次都要写,每次又都差不多。真正需要变通的只有操作图片的这一步骤了。操作图片又往往通过1或多个主要的gd函数来完成。
本文封装类里面的四种方法,文字水印(imagettftext()),图片水印(imagecopymerge()),图片压缩,图片剪切(imagecopyresampled()),其余的常用gd函数便不赘述。直接上代码:
<?php class image { private $info; private $image; public $type; public function construct($src) { $this->info=getimagesize($src);         $this->type=image_type_to_extension($this->info['2'],false);         $fun=imagecreatefrom{$this->type};         $this->image=$fun($src);     }    /**      * 文字水印      * @param  [type]  $font     字体      * @param  [type]  $content  内容      * @param  [type]  $size     文字大小      * @param  [type]  $col      文字颜色(四元数组)      * @param  array   $location 位置       * @param  integer $angle    倾斜角度      * @return [type]                 */     public function fontmark($font,$content,$size,$col,$location,$angle=0){         $col=imagecolorallocatealpha($this->image, $col['0'], $col['1'], $col['2'],$col['3']);         imagettftext($this->image, $size, $angle, $location['0'], $location['1'], $col,$font,$content);     }         /**      * 图片水印      * @param  [type] $imagemark 水印图片地址      * @param  [type] $dst       水印图片在原图片中的位置      * @param  [type] $pct       透明度      * @return [type]                  */     public function imagemark($imagemark,$dst,$pct){         $info2=getimagesize($imagemark);         $type=image_type_to_extension($info2['2'],false);         $func2=imagecreatefrom.$type;         $water=$func2($imagemark);         imagecopymerge($this->image, $water, $dst[0], $dst[1], 0, 0, $info2['0'], $info2['1'], $pct);         imagedestroy($water);     }    /**      * 压缩图片      * @param  [type] $thumbsize 压缩图片大小      * @return [type]            [description]     */     public function thumb($thumbsize){         $imagethumb=imagecreatetruecolor($thumbsize[0], $thumbsize[1]);                  imagecopyresampled($imagethumb, $this->image, 0, 0, 0, 0, $thumbsize[0], $thumbsize[1], $this->info['0'], $this->info['1']);         imagedestroy($this->image);         $this->image=$imagethumb;     }    /**     * 裁剪图片      * @param  [type] $cutsize  裁剪大小      * @param  [type] $location 裁剪位置      * @return [type]           [description]     */      public function cut($cutsize,$location){          $imagecut=imagecreatetruecolor($cutsize[0],$cutsize[1]);          imagecopyresampled($imagecut, $this->image, 0, 0, $location[0], $location[1],$cutsize[0],$cutsize[1],$cutsize[0],$cutsize[1]);          imagedestroy($this->image);          $this->image=$imagecut;      }    /**      * 展现图片      * @return [type] [description]     */     public function show(){         header(content-type:.$this->info['mime']);         $funn=image.$this->type;         $funn($this->image);     }    /**      * 保存图片  * @param  [type] $newname 新图片名  * @return [type]          [description] */      public function save($newname){          header(content-type:.$this->info['mime']);          $funn=image.$this->type;          $funn($this->image,$newname.'.'.$this->type);      }     public function destruct(){          imagedestroy($this->image);      }  } ?>
以上就是本文的所有内容了如果还需要其他操作,只需要再往这个类里面添加就好啦~~
相关推荐:
详解php如何使用gd库完成验证码效果教程
php如何开启gd库?
php 用gd库生成高质量的缩略图片示例代码
以上就是php图片水印添加、压缩、剪切的封装类 的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product