fc2ブログ
ホーム   »  Java  »  JAI 1.0_01 image/bmp MIME-Type のバグ

JAI 1.0_01 image/bmp MIME-Type のバグ

JAI をインストールした後に ImageIO.getReaderMIMETypes() で MIME-Type と照らし合わせて処理してみたのだが、どうも image/bmp の形式だけ意図した動きにならないようだ。

ImageIO がサポートしている MIME-Type に image/bmp が含まれていない動きになってしまうのだ。だがその文字列配列をコンソールに出力するとちゃんと image/bmp と表示される。ImageIO.getImageReadersByMIMEType("image/bmp") は有効な要素を一つも返してくれない。だが ImageIO.read() はちゃんと Windows Bitmap も読み込めるというおかしな現象だ。

アレコレ試行錯誤の末、どうも getReaderMIMETypes() が返す文字列に変な空白が入っているのに気付いた。うーん、バグっぽい… ということで BugParade で検索したら、何とこんなことになっていたのだ。

In BMPImageReaderSpi class you have MIME types defined as follows:
private static String mimeTypes[] = {
    "image/bmp, image/x-bmp, image/x-windows-bmp"
};

should it be:
private static String mimeTypes[] = {
    "image/bmp", "image/x-bmp, "image/x-windows-bmp"
}

   。 。
  / /  シポーン
( Д )

見ての通り、文字列配列にすべきところを 1 つのリテラルにしてしまっていたのだ (私が気付いた空白は各要素とコンマの間の空白だった)。こりゃ "image/bmp" とじゃ一致しないはずだわ…

BugParade では一応 JAI 1.1β で FIX という事になっている。手元で試したところ 1.0 では発生しない。つまり 1.0_01 固有の問題ということだ。

これは単に MIME-Type に関連する部分のみで、Windows Bitmap 画像の読み込み/書き込みは問題なくできるようだ。ImageIO + JAI で MIME-Type と絡めて扱う場合はちょっと注意が必要。

コメント
トラックバック
トラックバック URL
コメントの投稿
管理者にだけ表示を許可する
Profile
Takami Torao
Takami Torao
C/C++ 使いだった 1996年、運命の Java と出会い現在に至る。のらアーキテクト。
Yah, this is image so I don't wanna eat spam, sorry!
Search

Google
MOYO Laboratory
Web

カテゴリー
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
ブロとも申請フォーム
RSSフィード
リンク