如何使用graphicsmagick了解读取图像的jpeg质量

时间:2010-05-03 13:16:38

标签: c++ image graphicsmagick

当我使用Magick :: readImages(...)函数读取jpeg图像时。 我怎么知道图像的估计jpeg质量? 我知道如何在我想要写图像时设置质量,但它与原始图像的质量无关,因此例如: 当我读到一个质量为80%的jpeg图像并且我用90%的质量写它时,我将获得比原始图像更大的图像,因为90%不是原始80%的90%。 如何知道读取图像的jpeg质量?

3 个答案:

答案 0 :(得分:5)

这是不可能的,期间。 JPEG质量设置只是传递给编码器的数字,会影响编码器处理数据的方式。

它甚至不是任何事物的百分比 - 只是某些设置会影响编码器操纵和转换数据的积极程度。无论你在哪里看到 JPEG质量附近的百分号都忽略它 - 它在那里毫无意义。

因此,无论编码器如何,都无法找到用于生成此图像的编码器的 JPEG质量设置值。唯一的方法是获取原始值并尝试所有合理可能的设置值,直到达到相同的结果。

答案 1 :(得分:2)

这可能但很困难。代码必须像人们一样检查图像。这是一篇关于这个主题的论文http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.4.4621&rep=rep1&type=pdf

答案 2 :(得分:2)

使用GraphicsMagick(或使用ImageMagick)既不可能也不困难。型

  

gm convert -log%e -debug coder in.jpg junk.ppm

并查看行的输出

  

质量:nn

如果图像是由Independent JPEG Group软件或

创建的
  

质量:nn(近似值)

否则。

您也可以使用

  

gm identify -verbose in.png

并查看

  

质量:nn

线;然而,这并没有区分精确和近似的品质。