目次 | 前の項目 | 次の項目 | JavaTM Image I/O API ガイド |
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);
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!"); }