這樣的縮圖就會是滿版,而且會很好看。
至於為何抓左上角呢?其實也可以自行計算重中間抓,只是不同的策略而已。
以下就是程式碼的部分。我是用 php 呼叫外部的 convert (ImageMagick 的執行檔) 製作的。
// 目的地尺寸及檔案
$size = "326x228";
$output_file = "thumb.jpg";
list($resizeW, $resizeH) = split("x", $size);
// 先抓出圖片的=長寬資訊
@list($width, $height, $type, $attr) = getimagesize( $source_img );
// 確認是否有抓到正確的檔案
if($resizeW!=0 && $resizeH!=0)
{
// 找出正確的輸出比例
$aspect_ratio = $resizeW / $resizeH;
$factor = (($width/$height) > $aspect_ratio)?($width/$resizeW):($height/$resizeH);
$newWidth = round($width / $factor);
$newHeight = round($height / $factor);
$offset_w = round(abs( $newWidth - $resizeW ) / 2);
$offset_h = round(abs( $newHeight - $resizeH ) / 2);
$offset_w = 0;
$offset_h = 0;
$cmd = 'convert '.$source_img.' -thumbnail '.$size.'^ -crop '.$size.'+'.$offset_w.'+'.$offset_h.' '.$output_file;
pclose(popen("$cmd ", 'r'));
}
以上計算方式以及處理檔案位置的部分就靠自己囉,應該並不困難啦!
希望大家都能提供好看的縮圖喔!
註:我用的版本是 ImageMagick 6.7.3-2