2

我需要将上传图像的大小调整为低于上传图像分辨率的分辨率。

像这样:

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

然而:

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

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

4

1 回答 1

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相反的条件。

于 2013-05-19T00:28:46.890 回答