获得图像的压缩比

时间:2011-01-31 17:15:44

标签: c++ compression jpeg libjpeg

我使用LibJPEG来读取JPEG压缩图像。有没有办法获得未更改图像的当前压缩率?

4 个答案:

答案 0 :(得分:7)

你的意思是编码质量,通常是0-100?

没有存储 - 它被用作图像编码的指南,关于波应该有多精确,然后它被丢弃。在任何JFIF头结构中都没有字段。据我所知,这个数字在编码器中的含义没有正式的定义,所以无论如何你都无法准确地确定任何给定数字的影响。

答案 1 :(得分:3)

如果Photoshop保存Jpeg,则必须将压缩级别存储在某处。多年来,我一直在文件中使用Photoshop的“另存为”作为检测使用的压缩级别的方法。根据我的经验,它总是建议压缩级别等于当前文件中使用的压缩级别。请注意,您实际上不必保存它。显然,这种方法对于大量文件并不好,但肯定有证据表明它必须存储在某处。

答案 2 :(得分:2)

如果压缩率,你的意思是文件大小相对

您可以使用ImageMagick-6.7.5.6中的识别-verbose

例如:

identify -verbose 1.jpg
(...)
  Geometry: 607x800+0+0
  Resolution: 72x72
(...)
  Filesize: 143KB
  Number pixels: 486K
好的

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

希望有所帮助。

答案 3 :(得分:0)

压缩比=(未压缩的大小)/(压缩的大小)。

要自动获取该信息,请下载Irfanview(适用于Windows的免费图像程序),并使用它打开图像,然后从“图像”->“信息”->中看到很多有用的信息,其中包括“压缩”以及质量,尺寸分辨率颜色等。现在转到-> EXIF信息->压缩->这里的数字是压缩率。

示例:如果压缩率为6,则原始文件/图像的大小是压缩后的文件/图像的6倍(您现在正在查看)。