当我使用 GIMP 保存 JPG 文件时,我可以调整保存的质量,范围从 0 到 100(我使用 89)。我似乎使用过一款应用来查看保存文件中的这个数字,但如果我这样做了,我无论如何也想不出它到底是多少。有什么建议吗?
答案1
一旦保存,就无法再分辨其质量。
(保存时设置质量只是告诉软件您可以接受多少损失,但一旦保存,丢失的就丢失了。您需要一个人来判断某些东西是否好看。)
嗯,我想我错了。我仍然认为上面的内容是正确的,但是图像魔术师的identify
证明我错了吗?
识别-verbose myimage.jpg 图片:myimage.jpg 格式:JPEG(联合图像专家组 JFIF 格式) 类:DirectClass 几何:358x240+0+0 分辨率:300x300 [...] 压缩:JPEG 品质:90 方向:未定义 [...]
我不知道测试中的图像是如何保存的,但它没有任何 EXIF 数据。图像中还能保留质量吗?
答案2
补充 Arjan 的回答:
ImageMagickidentify
似乎实际上查看了 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 源代码中,第 843 行以下)。
我对 JPEG 了解不够多,无法真正理解,但它似乎做了类似本文所述的事情:
使用 Visual C# .NET 确定 JPEG 质量因素(链接于 2018 年 1 月失效;2015 年存档于 archive.org)
所以是的,identify
实际上可以仅从压缩文件中确定 JPEG 的质量设置(尽管结果可能并不总是完全准确)。
答案3
正如 Arjan 提到的identify -verbose myimage.jpg
那样。由于 imagemagick 是一个 CLI 工具,它可能对脚本有用。这种方法identify -verbose myimage.jpg | grep ...
非常慢。我建议像这样使用 IM
identify -format '%Q' myimage.jpg
它的速度快得多。