gpt4 book ai didi

PHP 降低图像质量直到文件大小达到 1mb

转载 作者:行者123 更新时间:2023-12-02 22:25:13 27 4
gpt4 key购买 nike

我正在处理我的一个项目,用户将在其中上传图像。上传的图像将使用灯箱显示。

问题是用户可能会上传大小为 5mb 等的图像。因此,它需要大量的加载时间。所以我想在保持尺寸不变的情况下降低图像质量。

我知道我们可以使用 imagejpeg() 函数,并传递质量为 90 的第三个参数,这也可以减小文件大小。

我需要所有图像文件的大小不超过 1mb。

因此,我对应该传递什么值作为质量感到困惑,以便获得最佳质量。

例如。如果上传的图像文件大小是 1.2mb,然后说我将通过 90 作为质量,这可能会将大小降低到 1mb 以下,并且质量也是可以接受的。另一种情况,如果上传的文件大小是 5mb,如果我通过 90 作为质量,那么文件大小可能不会小于 1mb。在这里我需要传递较少的质量值(我猜)。

那么有什么方法可以帮助我确定应该通过的最佳质量参数。

非常感谢您的宝贵时间。

最佳答案

不久前,我花了很长时间来处理同样的事情。首先,我发现 PNG 和 JPG 格式很难猜测结果。 JPG 照片通常不能很好地转换为 PNG,但矢量 jpg 图像可以,矢量 png 通常不能很好地转换为 JPG,但照片可以。您会发现很难确保图像小于 1mb,特别是如果您不调整它们的大小。如果你不调整它们的大小,你也会遇到更多的麻烦——图像越大,质量就会越来越差(有点讽刺)。

您需要每个图像的几个版本。让我解释一下。

  1. 你想保留原图,这样你就可以在以后随时根据原图刷新图像,比如说,以后提高图像的质量,甚至获得一些新的维度。

  2. 将原始图像与灯箱一起使用通常不是一个好主意。你最好调整它的大小以适应 1024 x 1024 的大小。这将满足大多数人的需求,并且通常会提供合理的文件大小。然后,您可以根据需要提供要下载的原件。使用尽可能大的文件通常会导致访问者不满意,因为图像需要很长时间才能加载,甚至可能会在一段时间后因带宽使用而花费很多(出于同样的原因,您也是如此)。

我能想到的做你所要求的唯一方法是创建一些可怕的代码性能明智的循环,逐渐降低质量并检查生成的图像大小。一旦找到小于 1mb 的图像大小,它就会退出循环并使用该质量设置。不过,我真的不建议这样做。

附言在这个答案的范围之外,我在评论中提到了我使用的解决方案的方法。

关于PHP 降低图像质量直到文件大小达到 1mb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13085124/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com