- ベストアンサー
画像サイズの取得方法
現在サーブレットを用いて画像アップロードBBSを作成しているのですが BBSにアップロードを表示する際に縦もしくは横が 一定のサイズ以上の場合縮小して表示する必要があり 画像サイズの取得を今までは java.swing.ImageIcon#getIconWidth() などを使用していました。 しかしBMPファイルをアップロードする必要性が出てきたため上記の方法ではBMPのサイズを取得できず悩んでいます。 どなたかBMPでも画像サイズを取得できる方法を教えていただけないでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
使っているJavaのバージョンがわかりませんが、比較的新しいバージョンならjavax.imageio.ImageIO#read(...)でBMPファイルが読み込めます。 あとは返ってきたBufferedImageのgetWidth(),getHeight()を使ってサイズを取得出来ます。 他の方法としてはBMPファイルのヘッダ情報から直接読み込む方法があります。BMPファイルの構造はそんなに複雑ではないので比較的簡単に行えます。 前者は画像がメモリ上に展開されるので大きなBMPを扱う時などは後者の方がお勧めです。
お礼
なるほど。BufferedImageなんてクラスがあったんですね。 勉強不足でお恥ずかしいです。 ちなみにバージョンはjdk5.0_11を使用してます。 ただメモリ上に展開されることを考えると確かに後者のヘッダ情報を直接読んだほうがよさそうですね。 大変参考になりました。 ありがとうございました。