-
(下) // 图片添加图片水印 public function imageMark($sourceMark,$local,$alpha){ $infoMark = getimagesize($sourceMark); $typeMark = image_type_to_extension($infoMark[2],false); $funMark = "imagecreatefrom{$type2}"; $water = $funMark($sourceMark); imagecopymerge($this->image,$water,$local['x'],$local['y'],0,0,$infoMark[0],$infoMark[1],$alpha); imagedestroy($water); } //在浏览器中输出图片 public function show(){ header("Content-type:".$this->info['mime']); $funs = "image{$this->info['type']}"; $funs($this->image); } //把图片保存在硬盘里 public function save($newname){ $funs = "image{$this->info['type']}"; $funs($this->image,$newname.'.'.$this->info['type']); } //销毁图片 public function __destruct(){ imagedestroy($this->image); } } ?> PS: 此封装类,为完整封装查看全部
-
(上) <?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']}"; $this->image=$fun($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;//用压缩图片代替内存中原图像 } // 图片添加文字水印 public function fontMark($content,$font_url,$size,$color,$local,$angle){ //设置字体颜色和透明度 $col = imagecolorallocatealpha($this->image,$color['R'],$color['G'],$color['B'],$color['A']); //写入文字 imagettftext($this->image,$size,$angle,$local['x'],$local['y'],$col,$font_url,$content); }查看全部
-
B.操作图片 要实现缩略图的话,得把原图压缩在一个真彩色图像(相当于空白画板)里(控制画板的长和宽) 1.在内存中建立一个真色彩画布 $image_thumb = imagecreatetruecolor(300,200)//创建300*200的真彩色图像空白画布 2.将原图压缩在新建的真色彩画布上 //imagecopyresampled(真色彩图片画布,源图片文件,真色彩图片起始位置x,真色彩图片起始位置y,源图片文件起始位置x,源图片文件起始位置y,真色彩图片终止位置x,真色彩图片终止位置y,源图片文件终止位置x,源图片文件终止位置y); //通过 真色彩图片起始位置x,真色彩图片起始位置y,,真色彩图片终止位置x,真色彩图片终止位置y 来控制载入源图片的位置 //通过 源图片文件x轴,源图片文件y轴,源图片文件终止位置x,源图片文件终止位置y 来控制载入源图片的内容 imagecopyresampled($image_thumb,$image,0,0,0,0,300,200,info[0],info[1]); 3.销毁内存中的源图片 imagedestory($image);查看全部
-
A.打开图片(与添加文字水印的A步骤完全相同)查看全部
-
C+D.保存和销毁图片(与添加文字图片的C,D步骤完全相同,唯一不同的是 函数名字符串变量 不同))查看全部
-
B.操作图片 (1)设置水印图片的路径 $image_Mark = "weixin.png"; (2)获取水印图片的基本信息 $info2 = getimagesize($image_Mark); (3)3通过水印的图像编号来获取水印的图片类型 $type2 = image_type_to_extension($info2[2],false); (4)生成函数(名),实现根据不同的图像类型 调用 不同的GD库图像创建函数 $fun2 = "imagecreatefrom{$type2}"; (5)内存中创建图片 $water = $fun2($image_Mark); (6)合并图片(给源图片添加水印图片) //imagecopymerge(源图片,水印图片,源图片X轴位置,源图片中轴位置,水印图片X轴位置,水印图片Y轴位置,水印图片显示宽度,水印图片显示高度,水印图片透明度); //通过 源图片X轴位置 和源图片Y轴位置 控制 水印图片 在 源图片 中的位置; //通过 水印图片X轴位置,水印图片Y轴位置,水印图片显示宽度,水印图片显示高度 控制 显示 水印图片 的那一部分. imagecopymerge($image,$water,20,30,0,0,$info2[0],$info2[1],30); (7)销毁水印图片 imagedestroy($water);查看全部
-
A.打开图片(与添加文字水印的A步骤完全相同,唯一不同的是 函数名字符串变量 不同)查看全部
举报
0/150
提交
取消