我是一名JPEG新手,正在尝试解码(可能已损坏的)JPEG(或者说是JFIF)文件。
我的图像查看器程序报错了一个非法的0xb9标记。
该文件没有SOF(帧开始)标记,而是有这个APP1段。
ff e1 00 0b 50 49 43 00 02 28 3c 01 00
跟着这段文字出现了一个 0xb9 标记:
ff b9 00 11 08 06 4c 04 d3 03 01 22 00 02 11 01 03 11 01
我在这里看到的是什么?
编辑
有人问我文件来自哪里。以下是故事背景:
大约20年前,我购买了一套CD-ROM上的杂志集合。然而,这些杂志只能在旧的Windows计算机上阅读,因此我正在尝试找到另一种方法来阅读它们,最好是可以在我的Linux计算机上运行的方法。据我所知,杂志页面存储为许多JFIF文件,这些文件简单地连接在一起。
所以首先,我提取了其中一个JFIF文件,现在我正在尝试找到一种查看它的方法。
编辑2
有人要求我分享一张图片文件。我不确定是否会侵犯版权,因此我将在几天后再次删除该文件。无论如何,可以从此处下载其中一个有问题的图片文件:
https://www.dropbox.com/s/9da72gdri8c9xwp/f1000.jpg
我不知道文件包含什么内容,除了它可能是《MAD杂志》的一页。
ff b9
段非常像SOF0段,将其更改为 ff c0
(SOF0)会使图片可见,但只是一堆随机像素的集合。
上面提到的APP1段包含字符串 PIC
,这不是我所知道的任何APP1段类型的一部分。
编辑3
既然问题已经得到回答,为避免版权问题,我将从Dropbox中删除该文件。谢谢所有为此做出贡献的人。
FF B9
改为FF C0
后尝试在 GIMP 中打开您的示例图像,但出现了一个错误,提示“霍夫曼表 0x00 未定义”。我猜测您使用的任何查看器都会忽略该错误,并最终输出随机垃圾。 (顺便说一句,我还尝试过将标准JPEG霍夫曼表注入到文件中,但这只给我带来了一堆RGB沙拉和一个“损坏的JPEG数据:错误的霍夫曼代码”错误,在图像中途停止。) - Ilmari Karonen