第33夜 Java SEのあたりをつける 画像ファイル編

せっかく前回画像処理を行えるようになったのに画像ファイルが読み書きできないというのも片手落ちなので今回は補足編みたいな。

画像ファイルを出力する

BufferedImageから画像ファイルを出力するのに使うのはjavax.imageioパッケージにあるImageIOクラスだ。

そのImageIO#writeメソッドを使う。

前回画像を書く処理を紹介したが、それに多少追加してみる。

    BufferedImage image = new BufferedImage(128, 128, BufferedImage.TYPE_INT_RGB);
    Graphics2D g2 = image.createGraphics();
    
    g2.setColor(Color.YELLOW);
    g2.fillRect(0,0,image.getWidth(),image.getHeight());
    
    //赤い死角を描画
    g2.setColor(Color.RED);
    g2.drawRect(0, 0, 64, 64);
    
    //緑の円を描画
    g2.setColor(Color.GREEN);
    g2.drawOval(64, 64, 64, 64);
    
    g2.dispose();
    
    ImageIO.write(image, "png", new File("hoge.png"));
    ImageIO.write(image, "jpg", new File("hoge.jpg"));
    ImageIO.write(image, "bmp", new File("hoge.bmp"));

これで3種類の画像が生成される。ピクセルフォーマットによって出力できない場合もあるので注意。

ちなみに実行結果はこのようになる。
http://shin.cside.com/diary/2011/0622-01.png

画像ファイルを読み込む

こちらは逆にImageIO#readを利用する。


これでもうグラフィックエディタは作れるね!