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

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

程序员文章站 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();
相关标签: 水印