sle*_*ske 33
添加到 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];
Run Code Online (Sandbox Code Playgroud)
(coders/jpeg.c在我最近版本的 ImageMagick 源代码中,第 843 行)。
我对 JPEG 的了解还不够多,无法真正理解,但它似乎做了类似于本文中描述的事情:
使用 Visual C# .NET 确定 JPEG 质量因子(链接截至 2018 年 1 月已失效;从 2015 年起在 archive.org 上复制)
所以是的,identify实际上可以仅从压缩文件中确定 JPEG 的质量设置(尽管结果可能并不总是完全准确)。
Arj*_*jan 25
一旦保存,您就无法再分辨质量了。
(在保存时设置质量只是告诉软件您认为可以接受多少损失,但一旦保存:丢失的东西就丢失了。如果有些东西看起来不错,你需要有人说。)
嗯,我想我错了。我仍然认为上面是正确的,但ImageMagick的的identify证明我错了吗?
识别 -verbose myimage.jpg 图片:myimage.jpg 格式:JPEG(联合图像专家组 JFIF 格式) 类:直接类 几何:358x240+0+0 分辨率:300x300 [...] 压缩:JPEG 质量:90 方向:未定义 [...]
我不知道我测试中的图像是如何保存的,但它没有任何 EXIF 数据。质量是否仍然可以存储在图像中?
正如 Arjan 提到的identify -verbose myimage.jpg那样。由于 imagemagick 是一个 CLI 工具,它可能对编写脚本很有用。这种方法identify -verbose myimage.jpg | grep ...非常缓慢。我建议像这样使用 IM
identify -format '%Q' myimage.jpg
Run Code Online (Sandbox Code Playgroud)
它要快得多。
| 归档时间: |
|
| 查看次数: |
18418 次 |
| 最近记录: |