我需要将上传的图像大小调整为最大 100 kB。可能吗 ?
例如:尺寸为 1200x600 的 image1.jpg 有 280kB,我需要将其调整为 <100kB。
我需要将上传的图像大小调整为最大 100 kB。可能吗 ?
例如:尺寸为 1200x600 的 image1.jpg 有 280kB,我需要将其调整为 <100kB。
最新版本的 ImageMagick 允许您指定 JPEG 文件的最大大小,如下所示:
convert input.jpg -define jpeg:extent=100kb output.jpg
尽最大努力使输出文件小于 100kB。
尝试这个
convert DSC_0124.JPG -resize 602x400! -strip -define jpeg:extent=100KB img1.jpg
简短的回答:没有。
长答案:这是可能的,但它可能比它的价值更麻烦。
JPEG 在其物理尺寸和文件大小之间没有固定的关系,因为用于压缩图像的算法不仅考虑了图像的内容,而且还考虑了一个决定压缩过程“有损”程度的“质量”因素将会。它可以让您节省磁盘空间,但您的图像看起来更糟。
最好的方法是使用试错法来找到一个图像大小 [尺寸],使您达到100kB附近并具有不错的质量因子,在脚本中调整大小,检查图像的文件大小是否仍然太大,并在必要时开始降低质量。
如果您使用的是基于 linux 的服务器,我建议您使用 imagemagick,它有一个很好的 CLI,可以轻松地与 Web 语言交互。
根据分辨率或质量对您来说是否更重要,有几种方法可以解决这个问题。
根据图像复杂性,您正在寻找 1200x600 图像的大约 500K 和 3K 之间的文件大小
像这样的命令
"imagemagick inputfile.jpg -quality 80 -resize 1200x600"
可能适用于大多数情况,但您可以更细化并检查文件大小和内容,并为您的质量提供动态值。
看看这个
它应该是您正在寻找的解决方案。
您将需要使用 gd/imagemagick