TP_框架下的GD图片处理类(含基本php图片处理思路)
程序员文章站
2022-05-31 20:06:06
...
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 getImage(){ return $this->image; } public function getInfo(){ return $this->info; } /** * 图片压缩 * @param $width * @param $height */ 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; } /** * 字体水印(默认左下角) * @param $fontfile 字体文件consolaz.ttf * @param $text 水印内容 */ public function fontMark($fontfile,$text){ //红绿蓝=白+50透明度字体 $col=imagecolorallocatealpha($this->image, 255, 255, 255, 50); //图片字体合成-参数:图像,字体大小,偏转角度,横向偏移,纵向偏移,颜色,字体文件,内容 imagettftext($this->image, 50, 0, 40, $this->info['height']-50, $col, $fontfile, $text); } /** * 图片水印 * @param $water 水印图片 * @param $waterInfo 水印图片信息 */ public function imageMark($water,$waterInfo){ imagecopymerge($this->image,$water,20,30,0,0,$waterInfo['width'],$waterInfo['height'],20); /*图片合成-参数:目标图片,水印图片,横向偏移,纵向偏移, *水印图片x处开始复制,水印图片的y处开始复制, *水印图片x处结束复制,水印图片y处结束复制,水印图片的透明度。 */ imagedestroy($water); } public function showInHtml(){ header("content-type:".$this->info['mime']); $funs="image{$this->info['type']}"; $funs($this->image); } /** * 保存图片 * @param $newName 保存文件名 */ public function saveImage($newName){ $funs="image{$this->info['type']}"; $funs($this->image,"$newName.".$this->info['type']);//保存图片 } public function __destruct(){ imagedestroy($this->image); }}