|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
java.lang.Object
|
+--javax.imageio.spi.IIOServiceProvider
|
+--javax.imageio.spi.ImageReaderWriterSpi
|
+--javax.imageio.spi.ImageWriterSpi
ImageWriter のサービスプロバイダインタフェース (SPI) です。サービスプロバイダクラスの詳細は、IIORegistry クラスのクラスコメントを参照してください。
各 ImageWriterSpi は、関連する ImageWriter クラスに関する複数の情報タイプを提供します。
SPI クラスを定義するベンダ名とクラスの簡潔な説明は、getVendorName、getDescription、および getVersion メソッドで取得できます。これらのメソッドは、国際化してロケール固有の出力を行うことが可能です。これらのメソッドの主な目的は、ポップアップメニューなどのリスト編成するのに使用可能で、簡潔かつ人が書き込み可能な情報を提供することです。
サービスに関連した形式名、ファイル接尾辞、および MIME タイプのリストは、それぞれ getFormatNames、getFileSuffixes、および getMIMETypes メソッドで取得できます。これらのメソッドは、手動の形式選択、ファイルの命名、または MIME 関連付けに基づき、特定のファイルまたはストリームに書き込むための候補となる ImageWriter の識別に使用することができます。
特定のデータストリームを構文解析できる可能性の高い ImageWriter を判定するための、より信頼性の高い手段が canEncodeImage メソッドに用意されています。サービスプロバイダは、このメソッドを使用して実際のイメージ内容を検証できます。
このサービスプロバイダに関連する ImageWriter クラスのインスタンスは、createWriterInstance メソッドを呼び出すことで取得できます。ネイティブライブラリのロードや大規模なテーブル作成などの負荷の高い初期化は、少なくともこのメソッドが最初に呼び出されるまで延期する必要があります。
IIORegistry,
ImageTypeSpecifier,
ImageWriter| フィールドの概要 | |
protected Class[] |
outputTypes
getOutputTypes から返される Class オブジェクトの配列で、最初は null です。 |
protected String[] |
readerSpiNames
getImageReaderSpiNames |
static Class[] |
STANDARD_OUTPUT_TYPE
getInputTypes から返される単一要素の配列で、最初は ImageInputStream.class が格納されています。 |
| クラス javax.imageio.spi.IIOServiceProvider から継承したフィールド |
vendorName, version |
| コンストラクタの概要 | |
protected |
ImageWriterSpi()
空白の ImageWriterSpi を構築します。 |
|
ImageWriterSpi(String vendorName,
String version,
String[] names,
String[] suffixes,
String[] MIMETypes,
String writerClassName,
Class[] outputTypes,
String[] readerSpiNames,
boolean supportsStandardStreamMetadataFormat,
String nativeStreamMetadataFormatName,
String nativeStreamMetadataFormatClassName,
String[] extraStreamMetadataFormatNames,
String[] extraStreamMetadataFormatClassNames,
boolean supportsStandardImageMetadataFormat,
String nativeImageMetadataFormatName,
String nativeImageMetadataFormatClassName,
String[] extraImageMetadataFormatNames,
String[] extraImageMetadataFormatClassNames)
指定された値セットを使用して ImageWriterSpi を構築します。 |
| メソッドの概要 | |
abstract boolean |
canEncodeImage(ImageTypeSpecifier type)
このサービスプロバイダに関連する ImageWriter 実装が指定されたレイアウトでイメージをエンコードできる場合は、true を返します。 |
boolean |
canEncodeImage(RenderedImage im)
このサービスプロバイダに関連する ImageWriter 実装が、指定された RenderedImage インスタンスをエンコードできる場合は、true を返します。 |
ImageWriter |
createWriterInstance()
このサービスプロバイダに関連する ImageWriter 実装のインスタンスを返します。 |
abstract ImageWriter |
createWriterInstance(Object extension)
このサービスプロバイダに関連する ImageWriter 実装のインスタンスを返します。 |
String[] |
getImageReaderSpiNames()
このサービスプロバイダに関連する ImageWriter が使用する内部メタデータ表現を認識可能な ImageReaderSpi クラスのすべての完全指定名を含む String 配列を返します。 |
Class[] |
getOutputTypes()
ライタの setOutput メソッドの引数に使用可能なオブジェクトの型を示す Class オブジェクトの配列を返します。
|
boolean |
isFormatLossless()
このライタが出力する形式がピクセルデータをビット精度で保持する場合は true を返します。 |
boolean |
isOwnWriter(ImageWriter writer)
渡された ImageWriter オブジェクトがこのサービスプロバイダに関連する ImageWriter のインスタンスの場合は、true を返します。 |
| クラス javax.imageio.spi.IIOServiceProvider から継承したメソッド |
getDescription, getVendorName, getVersion, onDeregistration, onRegistration |
| クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
public static final Class[] STANDARD_OUTPUT_TYPE
getInputTypes から返される単一要素の配列で、最初は ImageInputStream.class が格納されています。
protected Class[] outputTypes
getOutputTypes から返される Class オブジェクトの配列で、最初は null です。
protected String[] readerSpiNames
getImageReaderSpiNames から返される文字列の配列で、最初は null です。
| コンストラクタの詳細 |
protected ImageWriterSpi()
ImageWriterSpi を構築します。すべてのメソッドの作業バージョンを提供するためのインスタンス変数の初期化やメソッド実装のオーバーライドは、サブクラスで行う必要があります。
public ImageWriterSpi(String vendorName,
String version,
String[] names,
String[] suffixes,
String[] MIMETypes,
String writerClassName,
Class[] outputTypes,
String[] readerSpiNames,
boolean supportsStandardStreamMetadataFormat,
String nativeStreamMetadataFormatName,
String nativeStreamMetadataFormatClassName,
String[] extraStreamMetadataFormatNames,
String[] extraStreamMetadataFormatClassNames,
boolean supportsStandardImageMetadataFormat,
String nativeImageMetadataFormatName,
String nativeImageMetadataFormatClassName,
String[] extraImageMetadataFormatNames,
String[] extraImageMetadataFormatClassNames)
ImageWriterSpi を構築します。
vendorName - ベンダー名 (null 以外の String)version - バージョン識別子 (null 以外の String)names - 形式名を示す null 以外の String 配列。1 つ以上のエントリが存在する必要があるsuffixes - 共通のファイル接尾辞を示す String 配列。接尾辞が定義されていない場合は、null を指定する。長さ 0 の配列は null に正規化されるMIMETypes - 形式の MIME タイプを示す String 配列。接尾辞が定義されていない場合は、null を指定する。長さ 0 の配列は null に正規化されるwriterClassName - 関連する ImageWriterSpi クラスの完全指定名 (null 以外の String)outputTypes - 正当な出力タイプを示す、長さ 1 以上の Class オブジェクトの配列readerSpiNames - 関連するすべての ImageReader のクラスを命名する、長さ 1 以上の String 配列、または null。長さ 0 の配列は null に正規化されるsupportsStandardStreamMetadataFormat - ストリームメタデータオブジェクトが標準メタデータ形式で記述されたツリーを使用可能かどうかを示す booleannativeStreamMetadataFormatName - getNativeStreamMetadataFormatName から返される String、または nullnativeStreamMetadataFormatClassName - getNativeStreamMetadataFormat から返されるメタデータ形式オブジェクトのインスタンス化で使用する String、または nullextraStreamMetadataFormatNames - getExtraStreamMetadataFormatNames から返される String 配列、または null。長さ 0 の配列は null に正規化されるextraStreamMetadataFormatClassNames - getStreamMetadataFormat から返されるメタデータ形式オブジェクトのインスタンス化で使用する String配列、または null。長さ 0 の配列は null に正規化されるsupportsStandardImageMetadataFormat - イメージメタデータオブジェクトが、標準のメタデータ形式で記述されたツリーを使用できるかどうかを示す booleannativeImageMetadataFormatName - getNativeImageMetadataFormatName から返される String、または nullnativeImageMetadataFormatClassName - getNativeImageMetadataFormat から返されるメタデータ形式オブジェクトのインスタンス化で使用する String、または nullextraImageMetadataFormatNames - getExtraImageMetadataFormatNames から返される String 配列。長さ 0 の配列は null に正規化されるextraImageMetadataFormatClassNames - getImageMetadataFormat から返されるメタデータ形式オブジェクトのインスタンス化で使用する String配列、または null。長さ 0 の配列は null に正規化される
- 例外:
IllegalArgumentException - vendorName が null の場合
IllegalArgumentException - version が null の場合
IllegalArgumentException - names が null または長さ 0 の場合
IllegalArgumentException - writerClassName が null の場合
IllegalArgumentException - outputTypes が null または長さ 0 の場合| メソッドの詳細 |
public boolean isFormatLossless()
true を返します。デフォルトの実装では true を返します。
truepublic Class[] getOutputTypes()
setOutput メソッドの引数に使用可能なオブジェクトの型を示す Class オブジェクトの配列を返します。
ImageOutputStream にのみ出力するほとんどのライタの場合、ImageOutputStream.class を含む単一要素の配列が返されます。
Class オブジェクトの、null 以外の配列public abstract boolean canEncodeImage(ImageTypeSpecifier type)
ImageWriter 実装が指定されたレイアウトでイメージをエンコードできる場合は、true を返します。レイアウト (つまりイメージの SampleModel と ColorModel) は ImageTypeSpecifier オブジェクトで記述されます。
true が返されても、エンコーディングが成功するとは限りません。エンコーディング処理で、入出力エラー、不整合または不正なデータ構造などによりエラーが発生する場合があります。この目的は、イメージがエンコーディング形式のスコープ内であるかどうかを判定するために、イメージの基本構造を適切に検証することです。たとえば、グレースケールのみをエンコ−ド可能な形式用のサービスプロバイダは、RGB BufferedImage が渡されると false を返します。同様に、8 ビット RGB イメージをエンコードできるサービスプロバイダは、関連するアルファチャネルを持つイメージをエンコードしない場合があります。
ImageWriter (サービスプロバイダ) の中には、多少厳格なものがあります。たとえば、格納するためにある程度精度を低下させて各ピクセルを除算する必要があっても、事前にアルファを乗算したイメージを受け取る場合があります。
type - 書き込まれるイメージのレイアウトを指定する ImageTypeSpecifier
true
IllegalArgumentException - type が null の場合public boolean canEncodeImage(RenderedImage im)
ImageWriter 実装が、指定された RenderedImage インスタンスをエンコードできる場合は、true を返します。これには java.awt.image.BufferedImage のインスタンスが含まれます。
このメソッドのセマンティクスの詳細は、canEncodeImage(ImageTypeSpecifier) の説明を参照してください。
im - エンコードされる RenderedImage のインスタンス
true
IllegalArgumentException - im が null の場合
public ImageWriter createWriterInstance()
throws IOException
ImageWriter 実装のインスタンスを返します。返されるオブジェクトの初期状態は、reset メソッドの呼び出し後のような状態です。
デフォルトの実装では、createWriterInstance(null) を返すだけです。
ImageWriter インスタンス
IOException - ライタクラスのロードや初期化、またはライタオブジェクトのインスタンス化や初期化でエラーが発生した場合
public abstract ImageWriter createWriterInstance(Object extension)
throws IOException
ImageWriter 実装のインスタンスを返します。返されるオブジェクトの初期状態は、reset メソッドの呼び出し後のような状態です。
構築時に Object をプラグインに提供できます。オブジェクトの特性は、プラグインによって異なります。
通常、プラグインは return new MyImageWriter(this) などのコードを使用してこのメソッドを実装します。
extension - プラグイン固有の拡張オブジェクト。null も可
ImageWriter インスタンス
IOException - ライタのインスタンス化に失敗した場合
IllegalArgumentException - 拡張オブジェクトが適切でないことを示すために ImageWriter のコンストラクタが IllegalArgumentException をスローする場合public boolean isOwnWriter(ImageWriter writer)
ImageWriter オブジェクトがこのサービスプロバイダに関連する ImageWriter のインスタンスの場合は、true を返します。
writer - ImageWriter インスタンス
writer が認識される場合は true
IllegalArgumentException - writer が null の場合public String[] getImageReaderSpiNames()
ImageWriter が使用する内部メタデータ表現を認識可能な ImageReaderSpi クラスのすべての完全指定名を含む String 配列を返します。この種の ImageReaders が指定されていない場合は null を返します。null 以外の値が返される場合は、0 以外の長さになります。
配列の最初の項目は、ImageIO.getImageReader(ImageWriter) から返される ImageReader のインスタンス化で使用されるため、「優先される」リーダのサービスプロバイダ名でなければなりません。
この機構は、ImageWriter が認識する構造内でピクセル以外のメタデータ (IIOExtraDataInfo を参照) を生成する ImageReaders の取得に使用できます。イメージを読み込み、このメソッドで取得したいずれかの ImageReaders からこのデータを取得し、それを ImageWriter に渡すと、クライアントプログラムですべてのメタデータを保持しつつ、イメージの読み込みや変更、書き戻しを行うことができ、メタデータの内部構造やイメージ形式でさえ何も意識する必要はありません。
ImageReaderSpi の名前を含む長さ 1 以上の String の配列、または nullImageIO.getImageReader(ImageWriter),
ImageReaderSpi.getImageWriterSpiNames()
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.