-
(下) // 圖片添加圖片水印 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; //內(nèi)存中的圖片 private $info; //圖片的基本信息 //打開一張圖片,讀取到內(nèi)存中 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;//用壓縮圖片代替內(nèi)存中原圖像 } // 圖片添加文字水印 public function fontMark($content,$font_url,$size,$color,$local,$angle){ //設(shè)置字體顏色和透明度 $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.操作圖片 要實現(xiàn)縮略圖的話,得把原圖壓縮在一個真彩色圖像(相當于空白畫板)里(控制畫板的長和寬) 1.在內(nèi)存中建立一個真色彩畫布 $image_thumb = imagecreatetruecolor(300,200)//創(chuàng)建300*200的真彩色圖像空白畫布 2.將原圖壓縮在新建的真色彩畫布上 //imagecopyresampled(真色彩圖片畫布,源圖片文件,真色彩圖片起始位置x,真色彩圖片起始位置y,源圖片文件起始位置x,源圖片文件起始位置y,真色彩圖片終止位置x,真色彩圖片終止位置y,源圖片文件終止位置x,源圖片文件終止位置y); //通過 真色彩圖片起始位置x,真色彩圖片起始位置y,,真色彩圖片終止位置x,真色彩圖片終止位置y 來控制載入源圖片的位置 //通過 源圖片文件x軸,源圖片文件y軸,源圖片文件終止位置x,源圖片文件終止位置y 來控制載入源圖片的內(nèi)容 imagecopyresampled($image_thumb,$image,0,0,0,0,300,200,info[0],info[1]); 3.銷毀內(nèi)存中的源圖片 imagedestory($image);查看全部
-
A.打開圖片(與添加文字水印的A步驟完全相同)查看全部
-
C+D.保存和銷毀圖片(與添加文字圖片的C,D步驟完全相同,唯一不同的是 函數(shù)名字符串變量 不同))查看全部
-
B.操作圖片 (1)設(shè)置水印圖片的路徑 $image_Mark = "weixin.png"; (2)獲取水印圖片的基本信息 $info2 = getimagesize($image_Mark); (3)3通過水印的圖像編號來獲取水印的圖片類型 $type2 = image_type_to_extension($info2[2],false); (4)生成函數(shù)(名),實現(xiàn)根據(jù)不同的圖像類型 調(diào)用 不同的GD庫圖像創(chuàng)建函數(shù) $fun2 = "imagecreatefrom{$type2}"; (5)內(nèi)存中創(chuàng)建圖片 $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步驟完全相同,唯一不同的是 函數(shù)名字符串變量 不同)查看全部
舉報
0/150
提交
取消