温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

TP框架下GD图片处理类的实现思路

发布时间:2021-10-19 10:46:59 来源:亿速云 阅读:136 作者:小新 栏目:web开发

这篇文章主要为大家展示了“TP框架下GD图片处理类的实现思路”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“TP框架下GD图片处理类的实现思路”这篇文章吧。

<?php
/**
 * Created by PhpStorm.
 */
class ImageTool{
    private $info;
    private $p_w_picpath;

    public function __construct($src){
        $info=getp_w_picpathsize($src);

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

以上是“TP框架下GD图片处理类的实现思路”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

tp gd
AI