当我使用Magick :: readImages(...)函数读取jpeg图像时。 我怎么知道图像的估计jpeg质量? 我知道如何在我想要写图像时设置质量,但它与原始图像的质量无关,因此例如: 当我读到一个质量为80%的jpeg图像并且我用90%的质量写它时,我将获得比原始图像更大的图像,因为90%不是原始80%的90%。 如何知道读取图像的jpeg质量?
答案 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
线;然而,这并没有区分精确和近似的品质。