图片添加文字水印 和图片水印

8/31/2015来源:PHP技巧人气:1884

图片添加文字水印 和图片水印
<?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();