这个问题可能是一个“悬而未决的问题”,你们中的许多人可能急于结束它,但请不要。让我解释。
众所周知,JPEG有两种压缩方式(至少在Photoshop保存对话框中)
- 优化,图像加载有点像逐行
- 渐进式,其中图像首先像马赛克一样加载,逐渐变好,直到原始分辨率
我以前读过很多 PNG/JPEG 优化文章,但现在我遇到了这种很棒的第三种压缩,来自一个狂野的随机谷歌图片搜索。有问题的JPEG是这个
http://storage.googleapis.com/marc-pres/boston-event-1012/images/google-data-center.jpg
尝试在 Chrome/Firefox 中加载链接(仅在 IE/Safari 中,直到图像完全加载然后显示)
你可以观察到:
- 图像首先以黑白方式加载
- 然后看起来像加载了红色通道
- 接下来加载绿色通道
- 最后加载蓝色通道
我尝试使用模拟的非常慢的连接再次加载它,并观察到 JPEG 不仅按通道顺序加载,而且以渐进方式加载。所以首先加载的图像是黑白马赛克然后是绿色马赛克然后逐渐全彩色马赛克最后是全分辨率和全彩色图像。
这是一项了不起的技术,假设您正在构建一个电子杂志,其中每个页面都有很多图片,您希望用户快速翻阅页面,而这种图片正是最好的。为了快速预览,加载空白-n-白色缩略图,如果用户停留,则完全加载原始图像。
所以我的问题是:如何使用 Python Pillow 或 ImageMagick 或任何类型的开源软件生成这样的图像?
如果您认为这个问题不合适,请发表评论,不要直接关闭它。
更新1:
事实证明,谷歌在其所有 JPEG 图片1、2中都使用了这项技术,例如这个
更新2:我发现了另一个线索