PHP - 根据图像分辨率调整大小

时间:2013-05-19 00:23:06

标签: php image-manipulation image-resizing

我需要将上传图片的大小调整为上传图片分辨率以下的分辨率。

像这样:

  • 如果我上传1920x1200分辨率的图像
  • 脚本应将上传的图像调整为以下分辨率:1680x1050,1440x900和1280x800

然而:

  • 如果我上传1680x1050分辨率的图片
  • 脚本应调整上传的图像大小为分辨率:1440x900和1280x800

我知道如何检测分辨率,如何调整大小并在服务器上保存图像,但我不知道如何为上面的问题构建逻辑。需要帮助。

1 个答案:

答案 0 :(得分: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和反向条件。