2013-05-19 194 views
2

我需要將上傳圖像的大小調整爲上傳圖像分辨率的分辨率。PHP - 根據圖像分辨率調整大小

像這樣:

  • 如果我上傳1920×1200分辨率的圖像
  • 腳本應該調整上傳的圖像分辨率:1680×1050,1440×900和1280×800

但是:

  • 如果我上傳1680x1050分辨率的圖像
  • 腳本應該調整上傳的圖像分辨率:1440×900和1280×800

我知道如何檢測分辨率,如何調整和保存在服務器上的形象,但我不知道如何建立邏輯問題之上。在那裏需要幫助。

回答

1

像這樣的東西應該做的:

// All resolutions that you want to generate 
$resolutions = [[1920,1200],[1680,1050],[1440,900],[1280,800]]; 

// Current image dimensions 
list($width, $height) = getimagesize('path/to/image.jpg'); 

foreach ($resolutions as $res) { 
    if ($width <= $res[0] || $height <= $res[1]) continue; 
    // logic to generate images at different resolutions 
} 

的想法是循環和跳過,直至尺寸在指定的範圍內,然後生成基於剩餘決議不同的圖像。

如果縱橫比對所有圖像都是相同的,那麼效果會更好,因此您可能需要調整它或者只是檢查寬度。

編輯:您也可以反轉陣列和從低分辨率到高分辨率的循環,並使用break與逆條件。

+0

太棒了!當然,我會根據自己的需要調整它,重要的是我從你的回答中獲得靈感:) – johnsmith

相關問題