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

时间:2013-10-08 17:15:06

标签: php codeigniter

我需要将上传的图片调整为最大尺寸100 kB。有可能吗?

例如:尺寸为1200x600的image1.jpg有280kB,我需要将其调整为<100kB。

6 个答案:

答案 0 :(得分:2)

简短回答:不。

答案很长:这是可能的,但它可能比它的价值更麻烦。

JPEG在物理尺寸与文件大小之间没有固定的关系,因为用于压缩图像的算法不仅要考虑图像的内容,还要考虑“质量”因素来确定“有损”的方式压缩过程将是。它让你节省磁盘空间,但你的图像看起来更糟。

最好的方法是使用反复试验找到一个图像尺寸[尺寸],使您获得100kB的邻域具有相当的品质因子,调整到您脚本中的尺寸,检查图像的文件大小是否仍然太大,并在必要时开始降低质量。

答案 1 :(得分:1)

最新版本的ImageMagick允许您指定JPEG文件的最大大小:

convert input.jpg -define jpeg:extent=100kb output.jpg

尽力使输出文件低于100kB。

答案 2 :(得分:0)

您需要使用gd / imagemagick

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

答案 3 :(得分:0)

查看this

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

答案 4 :(得分:0)

如果你使用的是基于linux的服务器,我建议使用imagemagick,它有一个很好的CLI,可以很容易地与网络语言连接。

根据分辨率或质量对您来说更重要,有几种方法可以解决这个问题。

根据图像复杂程度,1200x600图像的文件大小介于500K到3K之间

这样的命令
"imagemagick inputfile.jpg -quality 80 -resize 1200x600" 

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

答案 5 :(得分:0)

试试这个

convert DSC_0124.JPG -resize 602x400! -strip -define jpeg:extent=100KB img1.jpg