[Java]ImageIO.write呼び出しでのIndexOutOfBoundsExceptionスロー

ImageIO.writeというと、BufferedImageなどをpngなどに変換する場合によく用いますが、そこでIndexOutOfBoundsExceptionとかいうのがスローされていて原因がさっぱりだったので調べた結果。

まずはググってみた。「ImageIO.write IndexOutOfBoundsException」とか。

海外のフォーラムで「バグっぽいね!ImageIOに渡す第三引数をMemoryCacheImageOutputStreamで包んでやればいいよ!」とかいう記述を見た。

サンプルコード:

で変更して再実験、確かにExceptionは出ない。だけど望む処理ができてない。MemoryCacheImageOutputStreamに関しては探しても日本語の情報出てきそうになかったのでとりあえず気にしないことにして元に戻したりしていた。(javax.imageio.stream以下のそんなもの聞いたこともなかったので)

~(30分経過)~

アレ?Exceptionは見つからない…?

というわけでお見事OutOfMemoryErrorさんが釣れました。

普段メモリーの事気にしないとExceptionで全部取れる気がしてしまうけど、デバッグ時には何でもひっ捕らえるようにしよう…

カテゴリー: Java, プログラミング関連 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です