我需要将上传的图片调整为最大尺寸100 kB。有可能吗?
例如:尺寸为1200x600的image1.jpg有280kB,我需要将其调整为<100kB。
答案 0 :(得分:2)
简短回答:不。
答案很长:这是可能的,但它可能比它的价值更麻烦。
JPEG在物理尺寸与文件大小之间没有固定的关系,因为用于压缩图像的算法不仅要考虑图像的内容,还要考虑“质量”因素来确定“有损”的方式压缩过程将是。它让你节省磁盘空间,但你的图像看起来更糟。
最好的方法是使用反复试验找到一个图像尺寸[尺寸],使您获得100kB的邻域具有相当的品质因子,调整到您脚本中的尺寸,检查图像的文件大小是否仍然太大,并在必要时开始降低质量。
答案 1 :(得分:1)
最新版本的ImageMagick允许您指定JPEG文件的最大大小:
convert input.jpg -define jpeg:extent=100kb output.jpg
尽力使输出文件低于100kB。
答案 2 :(得分:0)
您需要使用gd / imagemagick
答案 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