首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java判断图片资料的格式是否为jpg

2012-12-20 
Java判断图片文件的格式是否为jpg这里不讨论通过文件后缀名的判断方式,因为可以很容易的手动修改后缀名。?

Java判断图片文件的格式是否为jpg

这里不讨论通过文件后缀名的判断方式,因为可以很容易的手动修改后缀名。

?

这里讨论如何通过文件的二进制流来判断一张图片是否为jpg格式的图片。对图像图像不太了解,请教了一位图像方向的同事后,大致了解了一些,这里写出来,作为笔记和分享。

?

原理很简单:所有JPG/JPEG格式的图片都是以十六进制的'FF D8'作为文件开始,'FF D9'作为文件结束标志。FF等为16进制数据,占文件的1 byte。如果没有带相机信息的jpg图片,第7, 8, 9, 10这4位上分别是字符'JFIF'的16进制表示,用UltraEdit打开可以直接看到;如果带有相机信息,有可能与不带信息的不同,也可能相同,不同的话在那4位上为'Exif'字符的16进制表示,但是他们都是以FF D8开始,FF D9结束。

?

原理清楚后,直接代码:

?

?

InputStream bin = new FileInputStream("C:/Users/wuyao/Desktop/sisu.jpg"); // a jpg fileint b[] = new int[4];b[0] = bin.read();b[1] = bin.read();bin.skip(bin.available() - 2);b[2] = bin.read();b[3] = bin.read();bin.close();boolean m = bin.markSupported();for (int e : b) {System.out.print(e + "-");}// StringBuffer buf = new StringBuffer("");for (int e : b) {buf.append(e);buf.append(", ");}buf.delete(buf.length() - 2, buf.length());System.out.println(buf.toString());// should be: 255, 216, 255, 217

?

?

其他图片格式需要再学习相应的格式规范,以此类推,应该不难。

?

热点排行