如何找到JPG质量?


16

使用GIMP保存JPG文件时,我可以将其保存的质量调整为0-100(我使用89)。似乎我已经使用一个应用程序来查看此数字在保存的文件中,但是如果我不这样做,我将一生无法弄清楚它是什么。有什么建议使用什么?


2
只是要确保它是已知的:不同应用程序的质量设置通常是不相上下的:faqs.org/faqs/jpeg-faq/part1/section-5.html。但是,GIMP和ImageMagick都应使用IJG质量等级。
迈克尔·舒马赫

Answers:


22

保存后,就无法再判断质量了。

(在保存的同时设置质量只会告诉软件,您认为可接受的损失是多少,但是一旦保存,就会丢失什么。丢失的东西就丢失了。您需要有人说些看起来不错的东西。)

嗯,我想我错了。我仍然认为以上是正确的,但是ImageMagickidentify证明我错了?

确定-verbose myimage.jpg

图片:myimage.jpg
  格式:JPEG(联合图像专家组JFIF格式)
  类别:DirectClass
  几何:358x240 + 0 + 0
  分辨率:300x300
  [...]
  压缩方式:JPEG
  质量:90
  方向:未定义
  [...]

我不知道如何保存测试中的图像,但是它没有任何EXIF数据。画质是否仍可以存储在图像中?


您不能尝试转换成不同的品质吗?我很难相信,除非ImageMagick在jpg中存储了一些私有数据(因此这可能不适用于其他软件包)。
harrymc

有趣。我将拭目以待。
纳撒尼尔(Nathaniel)2009年

1
+1是imagemagick有效。我可以反复更改jpeg的质量,并使用识别来查看更改。如果我使用转换(另一个imagemagick连续性)或其他工具(例如MS Photo Editor),则此方法有效。
DaveParillo

1
ImageMagick正在做一些不同的事情。它提供了一个估计值,而不是读取原始软件的功能。您原来的,现在已划掉的答案确实更正确。请参阅@sleske的答案。
mattdm

26

要添加到Arjan的答案中:

ImageMagick的identify看上去实际上是在JPEG图像内部看,以猜测用于对其进行编码的质量设置。

ImageMagick的源代码(为免费软件加油:-)包含以下几行

/*
  Determine the JPEG compression quality from the quantization tables.
*/
sum=0;
for (i=0; i < NUM_QUANT_TBLS; i++)
{
  if (jpeg_info.quant_tbl_ptrs[i] != NULL)
    for (j=0; j < DCTSIZE2; j++)
      sum+=jpeg_info.quant_tbl_ptrs[i]->quantval[j];

coders/jpeg.c在我的最新版本的ImageMagick的源代码中,第843ff行)。

我对JPEG的了解还不足以真正理解,但是它似乎做了本文所述的事情:

使用Visual C#.NET确定JPEG品质因数(链接截至2018年1月已失效;从2015复制到archive.org上

因此,是的,identify实际上可以仅从压缩文件确定JPEG的质量设置(尽管结果可能并不总是完全准确的)。


1
哇 非常感谢您检查源代码。凉。
纳撒尼尔(Nathaniel)2010年

@Nathaniel,您能选择这个答案作为我接受的答案吗?谢谢!(只要接受,我就无法删除它。)
Arjan

它正在搜索最能说明压缩比特流外观的JPEG量化表。
jbarlow

5

正如Arjan提到的identify -verbose myimage.jpg那样。由于imagemagick是一个CLI工具,因此可能对脚本编写很有用。这种方法identify -verbose myimage.jpg | grep ...很慢。我建议像这样使用IM

identify -format '%Q' myimage.jpg

它大大加快了速度。


2

JPEGsnoop是ImageMagick的一个不错的选择identify。下载的内容很小,并且具有可移植格式。

处理完jpg后,您会在DQT标记下找到“近似质量系数”。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.