TP框架下GD图片处理类的实现思路
admin
2023-06-23 12:22:14
0
info=array(
            'width'=>$info[0],
            'height'=>$info[1],
            'type'=>p_w_picpath_type_to_extension($info[2],false),
            'mime'=>$info['mime']
        );
        $fun="p_w_picpathcreatefrom{$this->info['type']}";
        $this->p_w_picpath=$fun($src);
    }

    public function getImage(){
        return $this->p_w_picpath;
    }

    public function getInfo(){
        return $this->info;
    }

    /**
     * 图片压缩
     * @param $width
     * @param $height
     */
    public function thumb($width,$height){
        $p_w_picpath_thumb=p_w_picpathcreatetruecolor($width,$height);
        p_w_picpathcopyresampled($p_w_picpath_thumb,$this->p_w_picpath,0,0,0,0,$width,$height,$this->info['width'],$this->info['height']);
        p_w_picpathdestroy($this->p_w_picpath);
        $this->p_w_picpath=$p_w_picpath_thumb;
    }

    /**
     * 字体水印(默认左下角)
     * @param $fontfile 字体文件consolaz.ttf
     * @param $text 水印内容
     */
    public function fontMark($fontfile,$text){
        //红绿蓝=白+50透明度字体
        $col=p_w_picpathcolorallocatealpha($this->p_w_picpath, 255, 255, 255, 50);  
        //图片字体合成-参数:图像,字体大小,偏转角度,横向偏移,纵向偏移,颜色,字体文件,内容
        p_w_picpathttftext($this->p_w_picpath, 50, 0, 40, $this->info['height']-50, $col, $fontfile, $text);

    }

    /**
     * 图片水印
     * @param $water 水印图片
     * @param $waterInfo 水印图片信息
     */
    public function p_w_picpathMark($water,$waterInfo){
        p_w_picpathcopymerge($this->p_w_picpath,$water,20,30,0,0,$waterInfo['width'],$waterInfo['height'],20);
        /*图片合成-参数:目标图片,水印图片,横向偏移,纵向偏移,
         *水印图片x处开始复制,水印图片的y处开始复制,
         *水印图片x处结束复制,水印图片y处结束复制,水印图片的透明度。
         */
        p_w_picpathdestroy($water);
    }

    public function showInHtml(){
        header("content-type:".$this->info['mime']);
        $funs="p_w_picpath{$this->info['type']}";
        $funs($this->p_w_picpath);
    }

    /**
     * 保存图片
     * @param $newName 保存文件名
     */
    public function saveImage($newName){
        $funs="p_w_picpath{$this->info['type']}";
        $funs($this->p_w_picpath,"$newName.".$this->info['type']);//保存图片
    }

    public function __destruct(){
        p_w_picpathdestroy($this->p_w_picpath);
    }
}

相关内容

热门资讯

澳弘电子获得实用新型专利授权:... 证券之星消息,根据天眼查APP数据显示澳弘电子(605058)新获得一项实用新型专利授权,专利名为“...
菲总统日本国会演说:双方关系已... 据凤凰卫视报道,菲律宾总统马科斯28日在日本国会发表演说,回顾了菲日两国关系的发展历程,并就双边合作...
李立功:以自主算力底座支撑人工... 天津北方网讯:5月28日,在2026世界智能产业博览会开幕式上,中国电子信息产业集团有限公司董事长李...
SK海力士推出集成散热HBM内... 韩国半导体巨头SK海力士宣布推出一种面向AI数据中心的新型高带宽内存(HBM),通过在内存封装内部集...
《通信世界》2026年第5期上... 《通信世界》2026年4月20日 第4期 本期专题 智能体:重塑ICT产业生态 随着人工智能与大模型...
海军黄石舰最新演练画面 近日,北部战区海军某支队黄石舰开展海上多课目实战化训练。训练全程不设脚本、临机设置险情,突出专攻精练...
美财长:特朗普不会接受“糟糕的... △美国财政部长贝森特(资料图)当地时间5月28日,美国财政部长贝森特在简报会上表示,美国与伊朗谈判团...
知情人士:伊朗方面尚未同意任何... 当地时间5月28日,伊朗谈判代表团媒体团队成员赛义德·阿加卢表示,截至目前,伊朗方面尚未同意任何谅解...
古巴外长:古美双边谈判没有取得... △古巴外交部长罗德里格斯(资料图)当地时间5月28日,古巴外交部长布鲁诺·罗德里格斯表示,古巴与美国...
伊朗最高领袖强调维护民族团结 伊朗最高领袖穆杰塔巴28日发表书面讲话,强调维护民族团结与社会凝聚力,并呼吁伊朗各界共同维护国家统一...