转载时请注明出处和作者联系方式:http://blog.csdn.net/mimepp
作者联系方式:YU TAO <yut616 at sohu dot com>
关键字:jpeg, SOI, EOI, Identifier
这里记录一下对 jpeg 文件的预先检查需要注意的几个地方。
1、对 SOI 的检查
start of image:
对应的内容应该为 FF D8
这个是必须要有的,如果一个文件最开头的两个字节不是 FF D8,那么就可以认为不是 jpeg 文件。
2、对 Identifier 的检查
这个是检查 JFIF 或 Exif 标签,如果不是这两个结果,也可以认为文件不是 jpeg
FF D8 FF E0 xx xx 4A 46 49 46 00 | ÿØÿà..JF IF. |
FF D8 FF E1 xx xx 45 78 69 66 00 | ÿØÿá..Ex if. |
3、对 EOI 的检查
这个是在文件最后的两个字节,应该为 FF D9。
如果不检查这个标签,可能在 jpeg lib 中出现 hang 住的情况。
在某些 mp3 的 id3tag 中,可能存在这样的未结束的 jpeg 图。
网络传输中,如果接收的文件也出现未能正确接收完,而直接去画图的话,可能会出现错误。
所以最好是加上对 EOI 的检查。
详细可以查看这里:
http://groups.google.com/group/funnytoolkit/browse_thread/thread/3abcca7c4eed6023