php GD库的简单封装,图片压缩、文字水印、图片水印等方法
2016-12-07 17:27
701 查看
<?php /** * GD库的封装 */ class gdimg{ private $imginfo; private $image; /** * 创建图片 * @param string $src 图片地址 */ function __construct($src){ $imginfo=getimagesize($src);//返回一个数组,[0]图片width,[1]图片height,[2]图片类型... $this->imginfo=array('width' =>$imginfo[0] , 'height'=>$imginfo[1], 'type'=>image_type_to_extension($imginfo[2],false), 'mime'=>$imginfo['mime'] ); $imgcreate="imagecreatefrom{$this->imginfo['type']}"; $this->image=$imgcreate($src); } /** * 压缩图片 * @param $width 压缩后宽度 * @param $height 压缩后高度 */ public function thumb($width,$height){ $img_thumb=imagecreatetruecolor($width, $height); imagecopyresampled($img_thumb, $this->image, 0, 0, 0, 0, $width, $height, $this->imginfo['width'], $this->imginfo['height']); imagedestroy($this->image); $this->image=$img_thumb; } /** * 为图片添加文字水印 * @param string $content 文字内容 * @param string $font 字体文件地址 * @param integer $fontsize 字体大小 * @param integer $top 在图片上的x坐标 * @param integer $left y坐标 */ public function fontmark($content,$font='img/BAUHS93.TTF',$fontsize=15,$top=20,$left=195){ $col_black=imagecolorallocatealpha($this->image, 0, 0, 0, 50); imagettftext($this->image, $fontsize, 0, $top, $left, $col_black, $font, $content); } /** * 为图片添加图片水印 * @param string $mark_src 水印图片地址 * @param integer $x 在源图片上的X坐标 * @param integer $y y坐标 * @param integer $ap 水印图片透明度 */ public function imgmark($mark_src,$x=170,$y=170,$ap=30){ $imginfo2=getimagesize($mark_src); $type2=image_type_to_extension($imginfo2[2],false); $imgcreate="imagecreatefrom{$type2}"; $water=$imgcreate($mark_src); imagecopymerge($this->image, $water, $x, $y, 0, 0, $imginfo2[0], $imginfo2[1], $ap); imagedestroy($water); } /** * 输出图片 */ public function show(){ header('Content-type:'.$this->imginfo['mime']); $outimg="image{$this->imginfo['type']}"; $outimg($this->image); } /** * 保存图片 * @param $newname 保存图片名称 */ public function save($newname){ $saveimg="image{$this->imginfo['type']}"; $saveimg($this->image,$newname.'.'.$this->imginfo['type']); } /** * 利用析构函数销毁内存中的图片 */ public function __destruct(){ imagedestroy($this->image); } } ?>
相关文章推荐
- php封装成类(GD库实现文字、图片水印、压缩图)
- php 使用GD库压缩图片,添加文字图片水印
- php面向对象与面向过程两种方法给图片添加文字水印
- php文字水印和php图片水印实现代码(二种加水印方法)
- 将文字水印、图片水印、压缩图片封装成类。
- php文字水印和php图片水印实现代码(二种加水印方法)
- php给图片添加文字水印方法汇总
- php文字水印和php图片水印实现代码(二种加水印方法)
- 。net 根据高宽比例压缩图片,并给简单的文字水印……
- php图片水印添加,压缩,剪切的封装类
- php文字、图片水印功能函数封装
- php面向对象与面向过程两种方法给图片添加文字水印
- ps简单去除图片上的文字水印方法介绍
- php图像处理类,上传,压缩,添加文字、图片水印
- php gd库 文字与图片组合(类似水印)
- PHP添加图片水印、压缩、剪切的封装类
- php文字水印和php图片水印实现代码(二种加水印方法)
- php给图片添加文字水印方法汇总
- php图片水印添加,压缩,剪切的封装类实现