2012-01-12 144 views
1

我有下面的代碼,我用我的服務器上的一些圖像調整到一個更小的尺寸:imagecopyresampled調整至最大寬度或高度,但保持比

// get the ratio of the original image 
list($orgwidth, $orgheight) = getimagesize($originalImageDir); 
// create a thumb and source image to be resized 
$thumb = imagecreatetruecolor($width, $height); 
$source = imagecreatefromjpeg($originalImageDir); 
// resize 
imagecopyresampled($thumb, $source, 0, 0, 0, 0, round($height/$ratio), $height, $orgwidth, $thumbheight); 
// save new thumb with quality 75 
imagejpeg($thumb, $path, 75); 

我遇到了以下問題:我給我的功能分別爲300和200的高度和寬度。現在,原始圖像不是那個比例,所以我希望能夠調整原始大小到最大寬度200或最大高度300;無論哪一個是較大的價值。例如,如果我有1200h x 1000w的圖像,我想調整它的高度爲240px和200px,因爲在這種情況下,200px是我的最大允許寬度。如果我有一個480h x 300w的圖像,我的新圖像將被調整爲300px高度和187px寬度,因爲300px是我的最大高度,這使我低於最大允許寬度。

希望我有道理。無論如何,如果任何PHP和數學奇才有東西煮熟,請分享:)

謝謝!

+0

必須有這個數百重複。 – Jon 2012-01-12 00:59:15

+2

[在PHP中調整圖片大小的智能方式]的可能重複(http://stackoverflow.com/questions/1906899/smart-way-of-resizing-i-php-) – Jon 2012-01-12 00:59:23

+0

計算原始圖像的寬高比,然後檢查你需要的最終圖像的寬度/高度是否在該寬高比下。如果不是,您可能需要更改最終圖像的寬度和高度。但是,如果您不想更改最終圖像的寬度/高度,則可能會扭曲或模糊。 – insomiac 2012-01-12 01:01:24

回答

相關問題