ImageMagick中有很多“隔行扫描”选项,但我真的不明白其中的区别。标题中的所有选项似乎都会生成一个类似的JPG文件 - 如果我有一个较慢/受限制的连接,我可以辨别出差异。
有什么实际区别吗?应该选择一个吗?
由于
答案 0 :(得分:5)
没有区别。这是ImageMagick的jpeg中的相关代码 编码器:
#if (JPEG_LIB_VERSION >= 61) && defined(C_PROGRESSIVE_SUPPORTED)
if ((LocaleCompare(image_info->magick,"PJPEG") == 0) ||
(image_info->interlace != NoInterlace))
{
if (image->debug != MagickFalse)
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
"Interlace: progressive");
jpeg_simple_progression(&jpeg_info);
}
else
if (image->debug != MagickFalse)
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
"Interlace: non-progressive");
#else
if (image->debug != MagickFalse)
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
"Interlace: nonprogressive");
#endif
也就是说,如果支持渐进式JPEG并且隔行扫描不是NoInterlace,则无论您请求什么样的隔行扫描,它都会写入渐进式JPEG。正如您在引用代码的第二行中所看到的,您还可以使用“PJPEG”扩展或“PJPEG”格式请求渐进式输出。