【发布时间】:2012-10-26 10:25:06
【问题描述】:
我正在处理我的一个项目,用户将在其中上传图片。上传的图像将使用灯箱显示。
问题是用户可能会上传大小为 5mb 的图像等等。因此,它需要大量的加载时间。所以我想降低图像质量,保持尺寸不变。
我知道我们可以使用 imagejpeg() 函数,并传递第三个参数,即质量 90,这也可以减小文件大小。
我需要所有图像文件大小最大为 1mb,不超过 1mb。
所以,我很困惑应该将什么值作为质量传递,以便获得最佳质量。
例如。如果上传的图像文件大小是 1.2mb,那么说我将通过 90 作为质量,这可能会将大小降低到 1mb 以下,并且质量也可以接受。另一种情况,如果上传的文件大小是 5mb,而不是我通过 90 作为质量,那么文件大小可能不小于 1mb。在这里我需要传递较少的质量值(我猜)。
那么有什么方法可以帮助我确定应该传递的最佳质量参数。
非常感谢您的宝贵时间。
【问题讨论】:
-
最常见的情况是改变图像质量以降低文件大小,并结合某种比例来帮助它。例如,如果图像是 12000X12000 像素,则仅降低 5mb 图像的图像质量可能还不够。最好的办法是设置压缩所有图像的质量级别,然后缩小超过一定大小的图像 - 这将为您提供最一致的结果。
-
首先感谢您的快速回复。缩小图像也会改变它的尺寸。我不想那样。我必须保持图像的尺寸。
-
不用担心。好吧,这实际上是您可以做的唯一两件事来影响文件大小 - 如果您不准备缩小图像,那么我会考虑在您的服务器上设置压缩或者使用 CDN 来传递图像,但是我认为如果你也不能缩放图像,你将不得不接受没有好的解决方案。
-
谢谢 jammypeach,我会尝试你的方法来缩放图像。