图片添加文字水印 和图片水印,添加文字水印图片
程序员文章站
2022-04-29 13:17:30
...
图片添加文字水印 和图片水印,添加文字水印图片
php /** * @desc 图片处理类 */ class Pic{ private $info; private $res; public $thumb_pic; public function __construct($picPath){ //获取图片信息 $this->info = getimagesize($picPath); //获取图片名 $this->info['type'] = image_type_to_extension($this->info[2],false); $funs = 'imagecreatefrom'.$this->info['type']; $this->res = $funs($picPath); } //缩略图 public function thumb($w=100,$h=100){ //创建图片资源 $image_thumb = imagecreatetruecolor($w,$h); imagecopyresampled($image_thumb,$this->res,0,0,0,0,$w,$h,$this->info[0],$this->info[1]); imagedestroy($this->res); $this->res = $image_thumb; } //展示 public function showPic(){ header('Content-type:'.$this->info['type']); $funs = 'image'.$this->info['type']; $funs($this->res); } //保存 public function savePic($newname){ $funs = 'image'.$this->info['type']; $funs($this->res,$newname.".".$this->info['type']); } //销毁图片 public function __destruct(){ imagedestroy($this->res); } /** * @desc 添加文字水印 * @param $content string 文字 * @param $fonturl string 字体路径 * @param $fontsize int 字体大小 * @param $fontcolor array 设置颜色和透明度 * @param $local array 水印坐标 * @param $fontangle int 字体旋转角度 */ public function fontMark($content,$fonturl,$fontsize,$fontcolor,$local,$fontangle){ $color = imagecolorallocatealpha($this->res,$fontcolor[0],$fontcolor[1],$fontcolor[2],$fontcolor[3]); imagettftext($this->res,$fontsize,$fontangel,$local['x'],$local['y'],$color,$fonturl,$content); } /** * @desc 添加图片水印 * @param $markPic string 水印图片 * @param $local array 图片坐标 * @param $alpha array 设置颜色和透明度 */ public function picMark($markPic,$local,$alpha){ $markInfo = getimagesize($markPic); $markType = image_type_to_extension($markInfo[2],false); $markFun = 'imagecreatefrom'.$markType; $markWater = $markFun($markPic); imagecopymerge($this->res,$markWater,$local['x'],$local['y'],0,0,$markInfo[0],$markInfo[1],$alpha); imagedestroy($markWater); } } $pic = new Pic('yibo_pic28.jpg'); $pic->picMark('logo3.png',array('x'=>50,'y'=>50),30); $pic->showPic();