确定适合文件大小的图像质量?

时间:2012-07-19 23:03:47

标签: php image gd

我目前正在将上传的图片重新采样为静态宽度和高度。我希望能够以低于特定文件大小阈值的最高质量创建图像的新副本。目前,我正在使用一种非常天真的方法 - 类似这样:

$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;
}

有没有更好的方法来确定我应该使用什么质量?

1 个答案:

答案 0 :(得分:2)

生成的文件大小不仅取决于质量参数,还取决于图像本身。通常,无法准确预测文件大小。

您可以对典型图像进行一系列测量,并创建一些比例,以便您更快地猜出精确的质量参数。

你也可以进行二进制搜索,在一些迭代后会收敛到足够好的点。