文章來源:http://www.cnblogs.com/hello-tl/p/7592974.html php
<?php /** * 處理圖片類 * 1.添加文字水印 * 2.添加圖片水印 * 3.壓縮圖片 */ class TL_Image{ private $image;//內存中的圖片 private $info;//圖片的基本信息 /** * 打開一張圖片,讀取到內存 * @param [type] $src [description] 圖片路徑 */ 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); } /** * 操做圖片(壓縮) * @param [type] $width [description] 寬 * @param [type] $height [description] 高 * @return [type] [description] */ 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; } /** * 操做圖片(添加文字水印) * [fontMark description] * @param [type] $content [description] 設置文字 * @param [type] $font_url [description] 字體文件路徑 * @param [type] $size [description] 字體大小 * @param [type] $color [description] 字體顏色 [] * @param [type] $local [description] 位置 [] * @param [type] $angle [description] 旋轉 * @return [type] [description] */ public function fontMark($content,$font_url,$size,$color,$local,$angle){ $col = imagecolorallocatealpha($this->image,$color[0],$color[1],$color[2],$color[3]); imagettftext($this->image, $size, $angle, $local['x'], $local['y'], $col, $font_url, $content); } /** * 操做圖片(添加圖片水印) * @param [type] $source [description] 水印圖片路徑 * @param [type] $local [description] 位置 [] * @param [type] $alpha [description] 透明 * @return [type] [description] */ public function imageMark($source,$local,$alpha){ $info2 = getimagesize($source); $type2 = image_type_to_extension($info2[2],false); $fun2 = "imagecreatefrom{$type2}"; $water = $fun2($source); imagecopymerge($this->image, $water, $local['x'], $local['y'], 0, 0, $info2[0], $info2[1], $alpha); imagedestroy($water); } /** * 瀏覽器輸出圖片 */ public function show(){ header("Content-Type:" . $this->info['mime']); $funs = "image{$this->info['type']}"; $funs($this->image); } /** * 保存圖片 * @param [type] $newname [description] 保存以後的名字 * @return [type] [description] */ public function save($srcs){ $funs = "image{$this->info['type']}"; $funs($this->image,$srcs); //move_uploaded_file($this->image, $srcs); } /** * 銷燬圖片 */ public function __destruct(){ imagedestroy($this->image); } }