對這文章發表回應
發表限制: 非會員 可以發表
發表者: 冷日 發表時間: 2008/9/19 8:54:50
這是我在別的網站上找到的~
就順便post上來給大家參考囉
而且不會失真哩,大家用用看囉~
原文出處:藍色小鋪
就順便post上來給大家參考囉
而且不會失真哩,大家用用看囉~
/* Convert image size. true color*/
//$src 來源檔案
//$dest 目的檔案
//$maxWidth 縮圖寬度
//$maxHeight 縮圖高度
//$quality JPEG品質
function ImageCopyResizedTrue($src,$dest,$maxWidth,$maxHeight,$quality=100) {
//檢查檔案是否存在
if (file_exists($src) && isset($dest)) {
$destInfo = pathInfo($dest);
$srcSize = getImageSize($src); //圖檔大小
$srcRatio = $srcSize[0]/$srcSize[1]; // 計算寬/高
$destRatio = $maxWidth/$maxHeight;
if ($destRatio > $srcRatio) {
$destSize[1] = $maxHeight;
$destSize[0] = $maxHeight*$srcRatio;
}
else {
$destSize[0] = $maxWidth;
$destSize[1] = $maxWidth/$srcRatio;
}
//GIF 檔不支援輸出,因此將GIF轉成JPEG
if ($destInfo['extension'] == "gif") $dest = substr_replace($dest, 'jpg', -3);
//建立一個 True Color 的影像
$destImage = imageCreateTrueColor($destSize[0],$destSize[1]);
//根據副檔名讀取圖檔
switch ($srcSize[2]) {
case 1: $srcImage = imageCreateFromGif($src); break;
case 2: $srcImage = imageCreateFromJpeg($src); break;
case 3: $srcImage = imageCreateFromPng($src); break;
default: return false; break;
}
//取樣縮圖
ImageCopyResampled($destImage, $srcImage, 0, 0, 0, 0,$destSize[0],$destSize[1],
$srcSize[0],$srcSize[1]);
//輸出圖檔
switch ($srcSize[2]) {
case 1: case 2: imageJpeg($destImage,$dest,$quality); break;
case 3: imagePng($destImage,$dest); break;
}
return true;
}
else {
return false;
}
}
?>
<?
//呼叫縮圖函式
ImageCopyResizedTrue("pict1.jpg","pict1s.jpg",400,300);
?>
原文出處:藍色小鋪