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

PHP怎样做出一个可添加水印与生成缩略图的类

2024/4/7 5:55:09发布16次查看
这次给大家带来php怎样做出一个可添加水印与生成缩略图的类,php做出一个可添加水印与生成缩略图类的注意事项有哪些,下面就是实战案例,一起来看一下。
imagetool.class.php
<?php class imagetool { private $imagepath;//图片路径 private $outputdir;//输出文件夹 private $memoryimg;//内存图像 public function construct($imagepath, $outputdir = null) { $this->imagepath = $imagepath;     $this->outputdir = $outputdir;     $this->memoryimg = null;   }   /**    * 显示内存中的图片    * @param $image    */   public function showimage()   {     if ($this->memoryimg != null) {       $info = getimagesize($this->imagepath);       $type = image_type_to_extension($info[2], false);       header('content-type:' . $info['mime']);       $funs = image{$type};       $funs($this->memoryimg);       imagedestroy($this->memoryimg);       $this->memoryimg = null;     }   }   /**将图片以文件形式保存    * @param $image    */   private function saveimage($image)   {     $info = getimagesize($this->imagepath);     $type = image_type_to_extension($info[2], false);     $funs = image{$type};     if (empty($this->outputdir)) {       $funs($image, md5($this->imagepath) . '.' . $type);     } else {       $funs($image, $this->outputdir . md5($this->imagepath) . '.' . $type);     }   }   /**    * 压缩图片    * @param $width 压缩后宽度    * @param $height 压缩后高度    * @param bool $output 是否输出文件    * @return resource    */   public function compressimage($width, $height, $output = false)   {     $image = null;     $info = getimagesize($this->imagepath);     $type = image_type_to_extension($info[2], false);     $fun = imagecreatefrom{$type};     $image = $fun($this->imagepath);     $thumbnail = imagecreatetruecolor($width, $height);     imagecopyresampled($thumbnail, $image, 0, 0, 0, 0, $width, $height, $info[0], $info[1]);     imagedestroy($image);     if ($output) {       $this->saveimage($thumbnail);     }     $this->memoryimg = $thumbnail;     return $this;   }   /**    * 为图像添加文字标记    *    * @param $content 文本内容    * @param $size 字体大小    * @param $font 字体样式    * @param bool $output 是否输出文件    * @return $this    */   public function addtextmark($content, $size, $font, $output = false)   {     $info = getimagesize($this->imagepath);     $type = image_type_to_extension($info[2], false);     $fun = imagecreatefrom{$type};     $image = $fun($this->imagepath);     $color = imagecolorallocatealpha($image, 0, 0, 0, 80);     $posx = imagesx($image) - strlen($content) * $size / 2;     $posy = imagesy($image) - $size / 1.5;     imagettftext($image, $size, 0, $posx, $posy, $color, $font, $content);     if ($output) {       $this->saveimage($image);     }     $this->memoryimg = $image;     return $this;   }   /**    * 为图片添加水印    *    * @param $watermark 水印图片路径    * @param $alpha 水印透明度(0-100)    * @param bool $output 是否输出文件    * @return $this    */   public function addwatermark($watermark, $alpha, $output = false)   {     $image_info = getimagesize($this->imagepath);     $image_type = image_type_to_extension($image_info[2], false);     $image_fun = imagecreatefrom{$image_type};     $image = $image_fun($this->imagepath);     $mark_info = getimagesize($watermark);     $mark_type = image_type_to_extension($mark_info[2], false);     $mark_fun = imagecreatefrom{$mark_type};     $mark = $mark_fun($watermark);     $posx = imagesx($image) - imagesx($mark);     $posy = imagesy($image) - imagesy($mark);     imagecopymerge($image, $mark, $posx, $posy, 0, 0, $mark_info[0], $mark_info[1], $alpha);     if ($output) {       $this->saveimage($image);     }     $this->memoryimg = $image;     return $this;   } }
imagetool使用
首先导入imagetool工具:
require_once 'imagetool.class.php';
然后实例化imagetool对象:
$imagetool = new imagetool('img/oppman.jpeg', 'out/');//图片路径、输出文件夹
一、生成压缩图片
$imagetool->compressimage(350, 250, true);//压缩宽度、压缩高度、是否保存 $imagetool->showimage();
二、添加文字水印
$imagetool->addtextmark('一拳超人', 50, 'res/micro.ttf', true);//内容、尺寸、字体、是否保存 $imagetool->showimage();
三、添加图片水印
$imagetool->addwatermark('res/logo.jpeg', 100, true);//水印路径、透明度、是否保存 $imagetool->showimage();
仅当做临时图像输出:
$imagetool->addtextmark('快捷输出', 50, 'res/micro.ttf')->showimage();
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
php实现mongodb单例模式操作类步骤详解
tp5(thinkphp5)操作mongodb数据库步骤详解
以上就是php怎样做出一个可添加水印与生成缩略图的类的详细内容。
该用户其它信息

VIP推荐

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