我需要将上传图像的大小调整为低于上传图像分辨率的分辨率。
像这样:
- 如果我上传 1920x1200 分辨率的图像
- 脚本应将上传的图像调整为分辨率:1680x1050、1440x900 和 1280x800
然而:
- 如果我上传 1680x1050 分辨率的图像
- 脚本应将上传的图像调整为分辨率:1440x900 和 1280x800
我知道如何检测分辨率,如何在服务器上调整图像大小和保存图像,但我不知道如何为上述问题构建逻辑。那里需要帮助。
我需要将上传图像的大小调整为低于上传图像分辨率的分辨率。
像这样:
然而:
我知道如何检测分辨率,如何在服务器上调整图像大小和保存图像,但我不知道如何为上述问题构建逻辑。那里需要帮助。
这样的事情应该做:
// 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
相反的条件。