photo是Oracle数据中的一个Blob类型字段,该字段保存二进制的图片数据我现在取出这些数据,如何能够判断这些数据是否能转换成图片类型?谢谢!

解决方案 »

  1.   

    图片文件头和文件尾,判断这个即可。~
    你所取得的是二进制的格式,是byte[]形式的,这样你对照下表即可。
    它们的格式是你判断的依据:1.JPEG
    - 文件头标识 (2 bytes): $ff, $d8 (SOI) (JPEG 文件标识)
    - 文件结束标识 (2 bytes): $ff, $d9 (EOI)2.TGA
    - 未压缩的前5字节   00 00 02 00 00
    - RLE压缩的前5字节   00 00 10 00 003.PNG
    - 文件头标识 (8 bytes)   89 50 4E 47 0D 0A 1A 0A4.GIF
    - 文件头标识 (6 bytes)   47 49 46 38 39(37) 61
                                         G   I   F     8   9 (7)     a5.BMP
    - 文件头标识 (2 bytes)   42 4D
                                         B   M6.PCX
    - 文件头标识 (1 bytes)   0A7.TIFF
    - 文件头标识 (2 bytes)   4D 4D 或 49 498.ICO
    - 文件头标识 (8 bytes)   00 00 01 00 01 00 20 209.CUR
    - 文件头标识 (8 bytes)   00 00 02 00 01 00 20 2010.IFF
    - 文件头标识 (4 bytes)   46 4F 52 4D
                                         F   O   R   M11.ANI
    - 文件头标识 (4 bytes)   52 49 46 46
                                       R     I     F   F
      

  2.   

    嗯,所以我想,你可以结贴了这样做至少是高效的,
    加入Java提供了一种似乎更简单的方法,内部实现想必也是这样的,如果真的转化为一个Image对象的时候。
    才能判断,那慢死了,而且内存耗不起