我使用LibJPEG来读取压缩的JPEG图片。有没有办法获取未更改的图像的当前压缩比率?
您是指编码质量,通常是0-100的数字吗?
这并没有被存储 - 它被用作图像编码的指南,以确定波形的精度,然后被丢弃。在任何JFIF头结构中都没有相应的字段。据我所知,在编码器之间没有关于此数字意义的正式定义,因此您无法精确确定任何给定数字的影响。
如果 Photoshop 保存 Jpeg,压缩级别必须存储在某个地方。多年来,我一直使用 Photoshop 的“另存为”方法来检测所使用的压缩级别。根据我的经验,它总是建议与当前文件使用相同的压缩级别。请注意,您实际上不必保存它。显然,这种方法对于许多文件来说并不适用,但肯定可以证明它必须存储在其中的某个位置。
exiftool
检查 JPEG 的元数据时,发现文件中嵌入了这个信息:"PhotoshopQuality = 4"。因此,是的,Photoshop 在 JPEG 文件中存储了自己的质量概念,而且是在一个非标准的头部中。 - Mark Stosberg如果说压缩比,你是指文件大小的相对关系吗?
您可以使用ImageMagick-6.7.5.6中的identify -verbose。
例如:
identify -verbose 1.jpg
(...)
Geometry: 607x800+0+0
Resolution: 72x72
(...)
Filesize: 143KB
Number pixels: 486K
good
identify -verbose 2.jpg
(...)
Geometry: 1719x2377+0+0
Resolution: 100x100
(...)
Filesize: 408KB
Number pixels: 4.086M
糟糕
convert 2.jpg -resample 72x72 2c.jpg
identify -verbose 2c.jpg
Geometry: 1238x1711+0+0
Resolution: 72x72
Filesize: 272KB
Number pixels: 2.118M
更好的解决方案
http://www.imagemagick.org/script/command-line-options.php?#density讨论了这个话题,并以“要将图像调整为在不同分辨率下具有相同大小,请使用-resample选项”结束。
我还发现了一个修改“jpeg质量因子”的工具。Jpegoptim-优化jpeg文件的实用程序。提供无损优化(基于优化哈夫曼表)和基于设置最大质量因子的“有损”优化。 http://www.kokkonen.net/tjko/projects.html
希望这些能对你有所帮助。
压缩比 =(未压缩大小)/(压缩大小)。
要自动获取该比率,请下载Irfanview,这是一个免费的Windows图像程序,使用它打开您的图像,然后从中转到“图像” ->“信息” ->您可以在那里看到很多有用的信息,其中包括“压缩”和质量、大小、分辨率和颜色等。现在去-> EXIF信息-> 压缩-> 这里的数字是压缩比。
例如:如果压缩比为6,则原始文件/图像大小比压缩后的文件/图像大小大6倍(您正在查看的文件/图像)。
jpegSize / bmpSize
。如果没有,那么你就无法知道比率。我相信有一些元数据标签用于指示使用的jpeg压缩级别,但没有任何东西可以指示源图像文件大小。 - tenfour