目次 | 前の項目 | 次の項目 JavaTM Image I/O API ガイド


3.4 ImageWriter クラス

ImageIO クラスのメソッドを使用して特定のイメージ形式用の ImageReader のリストを取得できるのと同じように、ImageWriter のリストも次のようにして取得できます。

Iterator writers = ImageIO.getImageWritersByFormatName("png");
ImageWriter writer = (ImageWriter)writers.next();

ImageWriter を取得したあとは、その出力先を、次のようにして ImageOutputStream に設定しなければなりません。

File f = new File("c:\images\myimage.png");
ImageOutputStream ios = ImageIO.createImageOutputStream(f);
writer.setOutput(ios);

最終的に、次のようにして、イメージを出力ストリームに書き込むことができます。

BufferedImage bi;
writer.write(bi);

3.4.1 複数のイメージの書き込み

IIOImage クラスを使用すると、1 つのイメージ、1 つまたは複数のサムネール、およびイメージに関連するメタデータ (イメージ以外のデータ) への参照を格納できます。メタデータについては、あとで説明します。ここでは、メタデータ関係のパラメータの値として null を渡すだけにしておきます。

ImageWriter クラスには、IIOImage から新しいファイルを作成する write メソッドと、IIOImage を既存のファイルに追加する writeInsert メソッドがあります。次のように、この 2 つのメソッドを続けて呼び出すことにより、マルチイメージファイルを出力できます。

BufferedImage first_bi, second_bi;
IIOImage first_IIOImage = new IIOImage(first_bi, null, null);
IIOImage second_IIOImage = new IIOImage(second_bi, null, null);
writer.write(null, first_IIOImage, null);
if (writer.canInsertImage(1)) {
	writer.writeInsert(1, second_IIOImage, null);
} else {
	System.err.println("Writer can't append a second image!");
}



目次 | 前の項目 | 次の項目
Copyright © 2001 Sun Microsystems, Inc. All Rights Reserved.