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

php 打包gd 库

程序员文章站 2022-06-01 11:01:35
...
php 封装gd 库

使用sae 版 thinkphp 在本地和sae 上无法实现缩略图,缩略图主要使用在瀑布流上面,不然一张图片2 3 M,速度太慢,就自己封装了一个,见笑!

class Thumb{    // 设置最大宽度,用来在编辑器中使用和显示    private  $max_width  = null;    private  $file_name  = null;    private  $water_name = null;    //获得文件名和图片宽度    public function __construct($max_widht,$file_name,$water_name) {        $this->max_width  = $max_widht;        $this->file_name  = $file_name;        $this->water_name = $water_name;    }    public function create_image(){        // 获得ori图片信息        list($width,$height,$type) = getimagesize($this->file_name);              // 当原有图片大于 要求的最大宽度时,才需要进行压缩        if($width > $this->max_width){            // 获得图片压缩百分比            $per = $this->max_width / $width;            $new_width = $width * $per;            $new_height = $height * $per;                  }else{            $new_height =  $height;            $new_width  =  $width;        }        //创建一个真彩色图像        $image_p = imagecreatetruecolor($new_width, $new_height -10);        $image = $this->image_obj($type,  $this->file_name);         imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);        $this->image_dump($type, $image_p, $this->file_name);        $this->water();    }    /*     * 生成为图片添加水印     */    private function water(){        $water_name = $this->water_name;        $dist_name = $this->file_name;        list($dist_width,$dist_height,$type) = getimagesize($dist_name);        $dist_im   = $this->image_obj($type, $this->file_name);        $water_name = "D:/xampps/htdocs/buyingfeiblog/1/App/Modules/Admin/Tpl/Public/Images/water.png";        list($w_width,$w_height) = getimagesize($water_name); // 获得图片水印信息        $water_src =  imagecreatefrompng($water_name);        // 设置图片水印位置 在右下角        $x = ($dist_width - $w_width) / 4 * 3 ;        $y =($dist_height - $w_height) /4 * 3 ;        if(imagecopy($dist_im, $water_src, $x, $y, 0, 0, $w_width, $w_height)){            imagepng($dist_im,$dist_name);            echo "success";        }else{            echo "error";        }    }    // 生成图片类型,生成不同图片 保持图片原本类型不发生变化    private function image_dump($type,$image_p,$filename){         switch ($type){            case 1:                imagegif($image_p, $filename);                $dis_im = imagecreatefromgif(file_name);                break;            case 2:                imagejpeg($image_p,  $this->file_name);                $dis_im = imagecreatefromjpeg(file_name);                 break;            case 3:                imagepng($image_p,file_name);                $dis_im = imagecreatefrompng(file_name);                break;            default :        }    }    // 根据图片不同,生成不同资源对象    private function image_obj($type,$filename){         switch ($type){//          1 = GIF,2 = JPG,3 = PNG,            case 1:               $image =   imagecreatefromgif($filename);              break;            case 2:               $image =   imagecreatefromjpeg($filename);              break;            case 3:               $image =   imagecreatefrompng($filename);               break;            default :        }        return $image;    }}    $thumb = new  Thumb(725,"D:/xampps/htdocs/test/test.jpg");    $thumb->create_image();//create_image?>

就是这么简单,
主要包括生成真彩图,
创建图形对象资源
图片进行合并,ok!

php 打包gd 库

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频