- PR -

Imageクラスをファイルに出力するには?

投稿者投稿内容
NV
ベテラン
会議室デビュー日: 2003/05/20
投稿数: 73
投稿日時: 2005-10-14 09:57
ImageクラスはApplet等で画面に出力可能ですが、そのイメージを画像ファイルとして出力する基本的な方法はございますでしょうか?
MARU
常連さん
会議室デビュー日: 2005/02/16
投稿数: 35
投稿日時: 2005-10-14 10:39
javax.imageio.ImageIO クラスはいかがでしょうか。
NV
ベテラン
会議室デビュー日: 2003/05/20
投稿数: 73
投稿日時: 2005-10-14 11:16
ご回答ありがとうございます。
「javax.imageio.ImageIOクラスを使用するのでは?」と調べていたのですが、ImageIOのメソッドで、Imageクラスをどこに引き渡すのか?またどのように変換していけば良いのか迷走中です。

ちなみに、環境は
Windows XP Pro & Java Version 1.4.2_07 です。


[ メッセージ編集済み 編集者: NV 編集日時 2005-10-14 11:22 ]
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2005-10-14 12:21
ヒントはBufferedImageクラスでしょう。
NV
ベテラン
会議室デビュー日: 2003/05/20
投稿数: 73
投稿日時: 2005-10-14 12:33
このような感じでBufferedImageを作成してますが、3行目でエラーが出てしまいます。

java.lang.IllegalArgumentException: stream == null!

1| Image img = createImage(src);
2| ImageInputStream inst = ImageIO.createImageInputStream(img);
3| BufferedImage buffImg = ImageIO.read(inst);
4|
5| boolean ret = ImageIO.write(buffImg, "bmp", new File("C:\\Test.bmp"));

ImageクラスからStreamを作成しようとしておりますが、根本的に勘違いでしょうか?
要するに、ImageInputStreamが作れないという事とは思いますが…。

※参照
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/javax/imageio/ImageIO.html

[ メッセージ編集済み 編集者: NV 編集日時 2005-10-14 12:43 ]
Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2005-10-14 13:40
NVさん、こんにちは。

BufferedImageに描画(drawImage)してください。
ImageIOではwriteしてください。

writeの引数にある RenderedImageの実装の1つが
BufferedImageということです。
MARU
常連さん
会議室デビュー日: 2005/02/16
投稿数: 35
投稿日時: 2005-10-14 14:48
昔のスレッドに“ImageオブジェクトをBufferedImageオブジェクトに変換する”やり方
を見つけましたので参考にしてみてはいかがでしょうか。

画像減色処理について
NV
ベテラン
会議室デビュー日: 2003/05/20
投稿数: 73
投稿日時: 2005-10-14 15:01
ご回答ありがとうございます。

>>BufferedImageに描画(drawImage)してください。

との事ですが、Graphicsオブジェクトを使用すると言うことでしょうか?

1| Image img = createImage(src);
2| BufferedImage bffImg = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_3BYTE_BGR);
3| Graphics offg = bffImg.createGraphics();
4| offg.drawImage(image, 0, 0, null);
 ????
6| boolean ret = ImageIO.write(buffImg, "bmp", new File("C:\\Test.bmp"));

理解不足で、何やら私違う方向に進んでいる気がするのですが…。すみません。

[ メッセージ編集済み 編集者: NV 編集日時 2005-10-14 15:20 ]

スキルアップ/キャリアアップ(JOB@IT)