您的位置:首页 > 其它

如何判断图形文件的格式是否是JPEG呢?

2008-12-14 17:21 302 查看
window.google_render_ad();
以前用过分析文件头的方法,但是即麻烦又有可能不准确。
不同软件生成的JPEG文件格式不同,如同一个JPEG文件用不同的软件(ACDSee, PhotoShop, Paint, Photo Editor等)另存一下,文件头都可能不同。
在.NET中是否有什么简单的方法呢。原来以为调入文件生成Image,通过检查Image的属性就可以很简单的知道,但发现无论是JPEG还是Bitmap通过上述方式调入后,Image的ImageType属性都是Bitmap.

在.NET还有其他的方法可以检查图形文件格式吗。

我的文件指本地文件,数据块(byte[])。
fancyf(凡瑞) 于 2005-6-24 10:44:59
检查一下jpeg的文件标识:
附:JPEG 文件格式
~~~~~~~~~~~~~~~~

- 文件头 (2 bytes): $ff, $d8 (SOI) (JPEG 文件标识)
- 任意数量的段 , 见后面
- 文件结束 (2 bytes): $ff, $d9 (EOI)

这样只需要判断前两个字节和最后两个字节就可以了
(详见:http://www.allaboutprogram.com/bb/viewtopic.php?t=1359&start=0&postdays=0&postorder=asc&highlight=)
fancyf(凡瑞) 于 2005-6-24 10:47:30
无论用什么软件保存,只要是jpg,首尾那一共四个字节都不会改变的,因为他们是jpg文件的标志,没有他们就不是jpg文件
hawksbill(玳瑁) 于 2005-6-24 11:06:06
标准文件头的前4个字节为0xFF, 0xD8,0xFF,0xE0.
但是有很多软件生成的文件头不太一样,例如1个标准JPEG文件在ACDSee6.0中另存之后,第4个字节就变成了0xE1.
hawksbill(玳瑁) 于 2005-6-24 11:09:06
首尾4个字节的确是不变的,但是这样判断有点漏洞。
现在想知道有没有什么其他的简单又可靠的方式。
fancyf(凡瑞) 于 2005-6-24 11:10:42
第四个字节变不变没有关系,因为它不是jpeg文件的标识
我说的是文件开头的两个字节,和文件末尾的两个字节,这一共四个字节不会变,不是前四个字节
songhtao(三十年孤独) 于 2005-6-24 11:34:03
最简单的就是看文件后缀是否有.jpg或.jpeg
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: