php封装成类(GD库实现文字、图片水印、压缩图)

来源:互联网 发布:php下载zip文件损坏 编辑:程序博客网 时间:2024/05/31 19:34
<?php require('image_class.php');$src = 'tmp.jpg';$font_url = 'msyh.ttc';$logo_url = 'logo.png';$content = 'Hello world';$local = array(    'x'=> 20,    'y'=> 30    );$color = array(    0 => 255,    1 => 255,    2 => 255,    3 => 20    );$fontsize = 20;$angle = -30;$alpha = 30;$image = new Image($src);$image->fontmark($font_url,$content,$local,$color,$angle,$fontsize);$image->imagemark($logo_url,$local,$alpha);$image->thumb(150,100);$image->show();$image->move('imagemark');
?>
image_class.php

<?php     class Image{        //图片属性        private $image;        private $info;        //构造图片方法        public function __construct($src){            $info = getimagesize($src);            $this->info = array(                'width'=> $info[0],                'height'=> $info[1],                'type'=> image_type_to_extension($info[2], false),                'mime'=> $info['mime'],                );                            //在内存中创建一个同类型的图像            $fun = "imagecreatefrom{$this->info['type']}"; //imagecreatefromjpeg                //把图片复制到我们的内存            $this->image = $fun($src); //imagecreatefromjpeg($src);        }        //压缩图片方法        public function thumb($width, $height){            $image_thumb = imagecreatetruecolor($width, $height);                //核心步骤,将原图复制到真彩色图像,按照一定比例压缩            imagecopyresampled($image_thumb, $this->image, 0, 0, 0, 0, $width, $height, $this->info['width'], $this->info['height']);            imagedestroy($this->image);            $this->image = $image_thumb;                //销毁图片          //  imagedestroy($image_thumb);   //地址一致,不能销毁        }        //文字水印方法        public function fontmark($font_url,$content,$local,$color,$angle,$fontsize){                //设置字体颜色和透明度 参数1 内存中的图片 RGB参数            $col = imagecolorallocatealpha($this->image, $color[0], $color[1], $color[2], $color[3]);                //写入文字            imagettftext($this->image, $fontsize, $angle, $local['x'], $local['y'], $col, $font_url, $content);        }        //图片水印方法        public function imagemark($logo_url,$local,$alpha){                //获取图片信息            $info2 = getimagesize($logo_url);                //通过图片的编号取得图片的类型            $type_logo = image_type_to_extension($info2[2], false);                //在内存中创建一个同类型的图像            $funs = "imagecreatefrom{$type_logo}"; //imagecreatefromjpeg                //把水印复制到我们的内存            $water = $funs($logo_url); //imagecreatefromjpeg($src);                //合并图像            //imagecopymerge($image, $water, 20, 30, 0, 0, $info2[0], $info2[1], 25);            $this-> imagecopymerge_alpha($this->image, $water, $local['x'], $local['y'], 0, 0, $info2[0], $info2[1],$alpha);                 //销毁水印            imagedestroy($water);          }          //解决imagecopy、imagecopymerge的合并方案(兼容方法)        public function imagecopymerge_alpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct){                $cut = imagecreatetruecolor($src_w, $src_h);                imagecopy($cut, $dst_im, 0, 0, $dst_x, $dst_y, $src_w, $src_h);                imagecopy($cut, $src_im,0, 0, $src_x, $src_y, $src_w, $src_h);                imagecopymerge($dst_im, $cut, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct);                }        /*输出图片到浏览器*/        public function show(){            header("content-type:".$this->info['mime']);            $func = "image{$this->info['type']}";            $func($this->image);                              }        /*输出图片到磁盘*/        public function move($newname){            header("content-type:".$this->info['mime']);            $func = "image{$this->info['type']}";            $func($this->image,$newname.'.'.$this->info['type']);        }        /*销毁图片*/        public function __destruct(){            imagedestroy($this->image);        }    }?>



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孩子偷钱屡教不改怎么办 孩子经常偷钱怎么办 小孩子总是偷钱怎么办 小孩喜欢偷钱怎么办 小孩老是偷钱怎么办 如果孩子偷钱怎么办 小孩在家偷钱怎么办 买了西晒房怎么办 乳胶漆有打磨痕迹怎么办 墙上乳胶漆用水擦完太亮了怎么办 外墙腻子不好打磨怎么办 腻子打磨的灰尘怎么办 家里的壁纸脏了怎么办 家装用冷风管冬天取暖怎么办? 房子装修冷色系怎么办 高血压突然变低血压怎么办 玩单机游戏卡顿怎么办 老人血压太低怎么办 老年人血压太低怎么办 觉总是不够睡怎么办 老年人气不够用怎么办 卧室晒不到太阳怎么办 农村房子墙角受潮怎么办 房间里面有虫子怎么办 墙壁发霉生虫子怎么办 墙壁发霉有虫子怎么办 墙面发霉有虫子怎么办 白漆墙面脏了怎么办 房间贴完墙墙面发霉怎么办? 家里的墙壁发霉怎么办 黑豆生虫了怎么办 家具有小虫子怎么办 店铺对面有镜子怎么办 房间里有蛆虫怎么办 房间里有虫子怎么办 小宝宝发烧了怎么办啊 小孩不盖被子怎么办 孩子不爱盖被子怎么办 宝宝不喜欢盖被子怎么办 被单上染上颜色怎么办 白漆不够白怎么办