将图像大小调整为指定大小 (<100 kB)


Resize image to specified size (<100 kB)

>我需要将上传的图像大小调整为最大大小 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附近,质量因子不错,在你的脚本中调整大小,检查图像的文件大小是否仍然太大,并在必要时开始降低质量。

你需要使用 gd/imagemagick

例如http://phpthumb.gxdlabs.com/

看看这个

它应该是您正在寻找的解决方案。

如果您使用的是基于 Linux 的服务器,我建议您使用 imagemagick,它有一个很好的 CLI,可以轻松地与 Web 语言接口。

几种方法可以解决这个问题,具体取决于分辨率或质量对您来说更重要。

根据图像复杂性,您正在寻找大约 500K 到 3K 之间的文件大小来获取 1200x600 图像

像这样的命令

"imagemagick inputfile.jpg -quality 80 -resize 1200x600" 

可能适用于大多数情况,但您可以获得更精细的粒度并检查文件大小和内容,并为您的质量提出动态值。