2013年4月22日 星期一

縮圖依照圖片格式



function ImageResize($fileName){

$ext = end(explode('.', $fileName));


if($ext=='jpg'){
$src = imagecreatefromjpeg('../../label_images/'. $fileName); //讀取來源圖檔

}else if($ext=='png'){
$src = imagecreatefrompng('../../label_images/'. $fileName); //讀取來源圖檔
}

$src_w = imagesx($src); //取得來源圖檔長寬
$src_h = imagesy($src);
$percent=getResizePercent($src_w,$src_h,250,200);

$new_w = $src_w*$percent; //新圖檔長寬
$new_h = $src_h*$percent;
$thumb = imagecreatetruecolor($new_w, $new_h); //建立空白縮圖

//設定空白縮圖的背景,如不設定,背景預設為黑色
$bg = imagecolorallocate($thumb,255,0,255); //空白縮圖的背景顏色
imagefilledrectangle($thumb,0,0,$src_w,$src_h,$bg); //將顏色填入縮圖

//執行縮圖
imagecopyresampled($thumb, $src, 0, 0, 0, 0, $new_w, $new_h, $src_w, $src_h);

if($ext=='jpg'){
imagejpeg($thumb, '../../label_images/new_'. $fileName);
}else{
imagepng($thumb, '../../label_images/new_'. $fileName);
}
}
function getResizePercent($source_w, $source_h, $inside_w, $inside_h)
{
if ($source_w < $inside_w && $source_h < $inside_h) { return 1; // Percent = 1, 如果都比預計縮圖的小就不用縮 } $w_percent = $inside_w / $source_w; $h_percent = $inside_h / $source_h; return ($w_percent > $h_percent) ? $h_percent : $w_percent;
}


修改於 http://blog.longwin.com.tw/2007/08/php_image_resize_2007/

沒有留言:

張貼留言