php等比例壓縮圖片
pathinfo(path,options)
以數組的形式返回文件路徑的信息
參數:path 文件路徑
options 可選。規定要返回的數組元素。默認是 all。
可能的值:
PATHINFO_DIRNAME – 只返回 dirname 目錄名
PATHINFO_BASENAME – 只返回 basename 文件基本名
PATHINFO_EXTENSION – 只返回 extension 文件擴展名
getimagesize(filename)
函數getimagesize返回一個具有四個單元的數組。
索引 0 包含圖像寬度的像素值,
索引 1 包含圖像高度的像素值。
索引 2 是圖像類型的標記:
1 = GIF, 2 = JPG, 3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。
索引 3 是文本字符串,內容為“height=”yyy” width=”xxx””,可直接用于 IMG 標記。
索引 bits 顏色分量的值 8bit,有2^8=256個值
imagecreatetruecolor(int x,int y)
返回一個圖像標識符:建立的是一幅大小為 x和 y的黑色圖像
imagecreatefromgif imagecreatefromgif imagecreatefrompng(file)
返回圖像標識符
imagecopyresampled
將一幅圖像中的一塊矩形區域拷貝到另一個圖像中,平滑地插入像素值,因此,尤其是,減小了圖像的大小而仍然保持了極大的清晰度
imagecopyresampled ( resource $dst_image , resource $src_image, int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int$dst_h , int $src_w , int $src_h )
dst_image
目標圖象連接資源。
src_image
源圖象連接資源。
dst_x
目標 X 坐標點
dst_y
目標 Y 坐標點。
src_x
源的 X 坐標點。
src_y
源的 Y 坐標點。
dst_w
目標寬度。
dst_h
目標高度。
src_w
源圖象的寬度。
src_h
源圖象的高度
imagejpeg
以 JPEG 格式將圖像輸出到瀏覽器或文件
( resource image , string filename , int quality)
resource image:要輸出的圖像
filename 輸出的目錄位置
quality 圖片的質量0-100選擇
imagedestroy(image)
釋放與 image 關聯的內存。image 是由圖像創建函數返回的圖像標識符
操作前文件夾截圖
操作后文件夾截圖
最后貼代碼和注釋
<?php $src="oldimg/girl.png";//圖片路徑 function resize($src) { $temp=pathinfo($src); var_dump($temp); // array (size=4) // 'dirname' => string 'oldimg' (length=6) // 'basename' => string 'girl.png' (length=8) // 'extension' => string 'png' (length=3) // 'filename' => string 'girl' (length=4) $name=$temp["basename"];//文件基本名 $dir=$temp["dirname"];//文件所在的文件夾 $extension=$temp["extension"];//文件擴展名 $savepath="{$dir}/../newimg/phone_{$name}";//縮略圖保存路徑 //獲取圖片的基本信息 $info=getimagesize($src); var_dump($info); // array (size=6) // 0 => int 327 // 1 => int 317 // 2 => int 3 // 3 => string 'width="327" height="317"' (length=24) // 'bits' => int 8 // 'mime' => string 'image/png' (length=9) $width=$info[0];//獲取圖片寬度 $height=$info[1];//獲取圖片高度 $w = 40;//壓縮后圖片的寬度 $h = intval(40 * $height / $width);//等比縮放圖片高度 變整型 $temp_img=imagecreatetruecolor($w,$h);//創建畫布 $im=create($src); imagecopyresampled($temp_img,$im,0,0,0,0,$w,$h,$width,$height);//將圖片復制到畫布中 imagejpeg($temp_img,$savepath, 100); imagedestroy($im); return $savepath; } /** * 創建圖片,返回資源類型 * @param string $src 圖片路徑 * @return resource $im 返回資源類型 * **/ function create($src) { $info=getimagesize($src); switch ($info[2]) { case 1: $im=imagecreatefromgif($src); break; case 2: $im=imagecreatefromgif($src); break; case 3: $im=imagecreatefrompng($src); break; } return $im; } $a=resize($src); echo $a;
轉載請注明:中夢科技博客 ? php等比例壓縮圖片【原創】