プログラムdeタマゴ

nodamushiの著作物は、文章、画像、プログラムにかかわらず全てUnlicenseです

バイナリーデータから画像の種類を判別する

というの↑が意外にもググっても出てこなかったので、ヘッダだけから種類を調べる簡易関数を作ってみた。
ImageType.java 直
対応フォーマットは

  • JPEG
  • PNG
  • GIF
  • BMP
  • TIFF
  • PICT

です。

関数は

関数 説明
getFormat(byte[] b) b:バイナリデータ
getFormat(InputStream i) i:読み込むデータ

例外IOException
getFormat(File f) f:読み込むファイル

例外IOException

いずれも戻り値はFormat列挙型。
Format列挙型は

  • JPEG
  • PNG
  • GIF
  • BMP
  • TIFF
  • PICT
  • UNKNOWN(いずれでもない)

です。

また、ImageTypeクラスには定数フィールドとして

  • JPEG="jpg"
  • PNG="png"
  • GIF="gif"
  • BMP="bmp"
  • TIFF="tif"
  • PICT="pic"
  • UNKNOWN="UNKNOWN"

が登録されています。
Format列挙型のtoString()関数が返す値とそれぞれ対応しています。

追記
fileを閉じ忘れるという初心者的アホなミスをしていたので修正。すいませんでした