欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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);    }}