我需要将上传图片的大小调整为上传图片分辨率以下的分辨率。
像这样:
然而:
我知道如何检测分辨率,如何调整大小并在服务器上保存图像,但我不知道如何为上面的问题构建逻辑。需要帮助。
答案 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
和反向条件。