我目前正在将上传的图片重新采样为静态宽度和高度。我希望能够以低于特定文件大小阈值的最高质量创建图像的新副本。目前,我正在使用一种非常天真的方法 - 类似这样:
$size = NULL;
$quality = 100;
while ($size === NULL || $size > MAX_SIZE) {
// write the image to disk using $quality
clearstatcache(TRUE, $image);
$size = filesize($image);
$quality -= 10;
}
有没有更好的方法来确定我应该使用什么质量?
答案 0 :(得分:2)
生成的文件大小不仅取决于质量参数,还取决于图像本身。通常,无法准确预测文件大小。
您可以对典型图像进行一系列测量,并创建一些比例,以便您更快地猜出精确的质量参数。
你也可以进行二进制搜索,在一些迭代后会收敛到足够好的点。