如果仅取 jpg 或 jp2 或 webp 文件的前导部分,您将得到缺少部分的图像或解码将完全失败。
当我尝试使用 LuraWave 特殊专有左心室射血分数,文件截断只会均匀降低质量(就好像图片最初是用较低质量设置编码的)
哪些其他图片格式支持此功能,即当文件尾部丢失时允许正常降级?
主要思想是存储高质量的图像,然后能够快速地逐渐降低质量(和文件大小),而无需重新编码。
答案1
交错巴布亚新几内亚内部支持这一点。我不知道大多数图像查看器处理纯截断(即缺少标记IEND
文件结尾的块)的效果如何,但当保存为隔行扫描时,图像的线条会以这样的顺序保存,以便可以快速加载模糊的图像版本,然后慢慢细化图像,直到加载整个图像。这对于通过慢速连接(拨号、3G)加载图像非常有用,在这种情况下,您希望用户能够看到某物很快,而不是让他们等待才能完整地看到图像。
您可以通过找到一张大图像(壁纸?)并将其保存为隔行 .png 来查看此信息。将文件上传到速度较慢的网络主机,或者使用 Fiddler 等工具模拟较慢的网络连接,然后尝试在浏览器中加载图像。
您首先会获得图像中每 8 行左右的部分,然后获得每 4 行左右的部分,然后是每隔一行,最后获得图像中所有剩余的行。
答案2
这不完全是粗略的文件截断,但可以对 djvu 的 c44 图像进行类似操作:
$ c44 q.ppm q.djvu -bpp 0.05,0.1,0.15,0.20,0.25,0.30,0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70
$ djvuextract q.djvu BG44=data.iff
BG44=data.iff --> "data.iff" (54286 bytes)
$ djvudump q.djvu | grep INFO
INFO [10] DjVu 1023x599, v24, 100 dpi, gamma=2.2
$ djvumake 5.djvu INFO=1023,599,100 BG44=data.iff:5
$ djvumake 10.djvu INFO=1023,599,100 BG44=data.iff:10
$ djvumake 1.djvu INFO=1023,599,100 BG44=data.iff:1
$ ls -s --block-size=1 1.djvu 5.djvu 10.djvu
45056 10.djvu 8192 1.djvu 24576 5.djvu