- すべての実装されたインタフェース:
- RegisterableService
public abstract class ImageWriterSpi extends ImageReaderWriterSpi
ImageWriterのサービス・プロバイダ・インタフェース(SPI)です。 サービス・プロバイダ・クラスの詳細は、IIORegistryクラスのクラス・コメントを参照してください。 
  各ImageWriterSpiは、関連するImageWriterクラスに関する複数の情報タイプを提供します。
 
 SPIクラスを定義するベンダー名とクラスの簡潔な説明は、getVendorName、getDescription、およびgetVersionメソッドで取得できます。 これらのメソッドは、国際化してロケール固有の出力を行うことが可能です。 これらのメソッドの主な目的は、ポップアップ・メニューやほかのリストを編成するのに使用可能で、簡潔かつ人が書込み可能な情報を提供することです。 
 
 サービスに関連する形式名、ファイル接尾辞、およびMIMEタイプのリストは、それぞれgetFormatNames、getFileSuffixes、およびgetMIMETypeメソッドで取得できます。 これらのメソッドは、手動の形式選択、ファイルの命名、またはMIME関連付けに基づき、特定のファイルまたはストリームに書き込むための候補となるImageWriterの識別に使用することができます。 
 
 特定のデータ・ストリームを構文解析できる可能性の高いImageWriterを判定するための、より信頼性の高い手段がcanEncodeImageメソッドに用意されています。 サービス・プロバイダは、このメソッドを使用して実際のイメージ内容を検証できます。 
 
 このサービス・プロバイダに関連するImageWriterクラスのインスタンスは、createWriterInstanceメソッドを呼び出すことで取得できます。 ネイティブ・ライブラリのロードや大規模な表作成などの負荷の高い初期化は、少なくともこのメソッドが最初に呼び出されるまで延期する必要があります。 
- 関連項目:
- IIORegistry,- ImageTypeSpecifier,- ImageWriter
- 
フィールドのサマリーフィールド 修飾子と型 フィールド 説明 protected Class<?>[]outputTypesgetOutputTypesから返されるClassオブジェクトの配列で、最初はnullです。protected String[]readerSpiNamesgetImageReaderSpiNamesから返される文字列の配列で、最初はnullです。static Class<?>[]STANDARD_OUTPUT_TYPEDeprecated.このフィールドを使用する代わりに、同等の配列{ ImageOutputStream.class }を直接作成してください。クラス javax.imageio.spi.ImageReaderWriterSpiで宣言されたフィールドextraImageMetadataFormatClassNames, extraImageMetadataFormatNames, extraStreamMetadataFormatClassNames, extraStreamMetadataFormatNames, MIMETypes, names, nativeImageMetadataFormatClassName, nativeImageMetadataFormatName, nativeStreamMetadataFormatClassName, nativeStreamMetadataFormatName, pluginClassName, suffixes, supportsStandardImageMetadataFormat, supportsStandardStreamMetadataFormat
- 
コンストラクタのサマリーコンストラクタ 修飾子 コンストラクタ 説明 protectedImageWriterSpi()空白の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を構築します。
- 
メソッドのサマリー修飾子と型 メソッド 説明 booleancanEncodeImage(RenderedImage im)このサービス・プロバイダに関連するImageWriter実装が、指定されたRenderedImageインスタンスをエンコードできる場合は、trueを返します。abstract booleancanEncodeImage(ImageTypeSpecifier type)このサービス・プロバイダに関連するImageWriter実装が、指定されたレイアウトでイメージをエンコードできる場合は、trueを返します。ImageWritercreateWriterInstance()このサービス・プロバイダに関連するImageWriter実装のインスタンスを返します。abstract ImageWritercreateWriterInstance(Object extension)このサービス・プロバイダに関連するImageWriter実装のインスタンスを返します。String[]getImageReaderSpiNames()このサービス・プロバイダに関連するImageWriterが使用する内部メタデータ表現を認識可能なImageReaderSpiクラスのすべての完全修飾名を含むString配列を返します。この種のImageReadersが指定されていない場合はnullを返します。Class<?>[]getOutputTypes()ライターのsetOutputメソッドの引数に使用可能なオブジェクトの型を示すClassオブジェクトの配列を返します。booleanisFormatLossless()このライターが出力する形式がピクセル・データをビット精度で保持する場合はtrueを返します。booleanisOwnWriter(ImageWriter writer)渡されたImageWriterオブジェクトがこのサービス・プロバイダに関連するImageWriterのインスタンスの場合は、trueを返します。クラス javax.imageio.spi.ImageReaderWriterSpiで宣言されたメソッドgetExtraImageMetadataFormatNames, getExtraStreamMetadataFormatNames, getFileSuffixes, getFormatNames, getImageMetadataFormat, getMIMETypes, getNativeImageMetadataFormatName, getNativeStreamMetadataFormatName, getPluginClassName, getStreamMetadataFormat, isStandardImageMetadataFormatSupported, isStandardStreamMetadataFormatSupportedクラス javax.imageio.spi.IIOServiceProviderで宣言されたメソッドgetDescription, getVendorName, getVersion, onDeregistration, onRegistration
- 
フィールド詳細- 
STANDARD_OUTPUT_TYPE@Deprecated public static final Class<?>[] STANDARD_OUTPUT_TYPEDeprecated.このフィールドを使用する代わりに、同等の配列{ ImageOutputStream.class }を直接作成してください。getOutputTypesから返される単一要素の配列で、最初はImageOutputStream.classが格納されています。
- 
outputTypesprotected クラス<?>[] outputTypesgetOutputTypesから返されるClassオブジェクトの配列で、最初はnullです。
- 
readerSpiNamesprotected String[] readerSpiNamesgetImageReaderSpiNamesから返される文字列の配列で、最初はnullです。
 
- 
- 
コンストラクタの詳細- 
ImageWriterSpiprotected ImageWriterSpi()空白のImageWriterSpiを構築します。 すべてのメソッドの作業バージョンを提供するための、インスタンス変数の初期化やメソッド実装のオーバーライドは、サブクラスで行う必要があります。
- 
ImageWriterSpipublic 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- ストリーム・メタデータ・オブジェクトが標準メタデータ形式で記述されたツリーを使用可能かどうかを示す- boolean。
- nativeStreamMetadataFormatName-- getNativeStreamMetadataFormatNameから返される- String、または- null。
- nativeStreamMetadataFormatClassName-- getNativeStreamMetadataFormatから返されるメタデータ形式オブジェクトのインスタンス化で使用する- String、または- null。
- extraStreamMetadataFormatNames-- getExtraStreamMetadataFormatNamesから返される- Stringの配列、または- null。 長さ0の配列は- nullに正規化される。
- extraStreamMetadataFormatClassNames-- getStreamMetadataFormatから返されるメタデータ形式オブジェクトのインスタンス化で使用する- Stringの配列、または- null。 長さ0の配列は- nullに正規化される。
- supportsStandardImageMetadataFormat- イメージ・メタデータ・オブジェクトが、標準のメタデータ形式で記述されたツリーを使用できるかどうかを示す- boolean。
- nativeImageMetadataFormatName-- getNativeImageMetadataFormatNameから返される- String、または- null。
- nativeImageMetadataFormatClassName-- getNativeImageMetadataFormatから返されるメタデータ形式オブジェクトのインスタンス化で使用する- String、または- null。
- extraImageMetadataFormatNames-- 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の場合。
 
 
- 
- 
メソッドの詳細- 
isFormatLosslesspublic boolean isFormatLossless()このライターが出力する形式がピクセル・データをビット精度で保持する場合はtrueを返します。 デフォルトの実装ではtrueを返します。- 戻り値:
- 形式が完全な精度でピクセルを保持する場合はtrue。
 
- 
getOutputTypespublic Class<?>[] getOutputTypes()ライターのsetOutputメソッドの引数に使用可能なオブジェクトの型を示すClassオブジェクトの配列を返します。ImageOutputStreamにのみ出力するほとんどのライターの場合、ImageOutputStream.classを含む単一要素の配列が返されます。- 戻り値:
- 長さ1以上のClassオブジェクトの、null以外の配列。
 
- 
canEncodeImagepublic abstract boolean canEncodeImage(ImageTypeSpecifier type)このサービス・プロバイダに関連するImageWriter実装が、指定されたレイアウトでイメージをエンコードできる場合は、trueを返します。 レイアウト(つまりイメージのSampleModelとColorModel)はImageTypeSpecifierオブジェクトで記述されます。trueが返されても、エンコーディングが成功するとは限りません。エンコーディング処理で、入出力エラー、不整合または不正なデータ構造などによりエラーが発生する場合があります。この目的は、イメージがエンコーディング形式のスコープ内であるかどうかを判定するために、イメージの基本構造を適切に検証することです。 たとえば、グレー・スケールのみをエンコード可能な形式用のサービス・プロバイダは、RGBBufferedImageが渡されるとfalseを返します。 同様に、8ビットRGBイメージをエンコードできるサービス・プロバイダは、関連するアルファ・チャネルを持つイメージをエンコードしない場合があります。ImageWriter(サービス・プロバイダ)の中には、多少厳格なものがあります。 たとえば、格納するためにある程度精度を低下させて各ピクセルを除算する必要があっても、事前にアルファを乗算したイメージを受け取る場合があります。- パラメータ:
- type- 書き込まれるイメージのレイアウトを指定する- ImageTypeSpecifier。
- 戻り値:
- このライターが指定されたレイアウトでイメージをエンコードできる可能性が高い場合はtrue。
- 例外:
- IllegalArgumentException-- typeが- nullの場合。
 
- 
canEncodeImagepublic boolean canEncodeImage(RenderedImage im)このサービス・プロバイダに関連するImageWriter実装が、指定されたRenderedImageインスタンスをエンコードできる場合は、trueを返します。 これにはjava.awt.image.BufferedImageのインスタンスが含まれます。このメソッドのセマンティックスの詳細は、 canEncodeImage(ImageTypeSpecifier)の説明を参照してください。- パラメータ:
- im- エンコードされる- RenderedImageのインスタンス。
- 戻り値:
- このライターがこのイメージをエンコードできる可能性が高い場合はtrue。
- 例外:
- IllegalArgumentException-- imが- nullの場合。
 
- 
createWriterInstancepublic ImageWriter createWriterInstance() throws IOExceptionこのサービス・プロバイダに関連するImageWriter実装のインスタンスを返します。 返されるオブジェクトの初期状態は、resetメソッドの呼出し後のような状態です。デフォルトの実装では、 createWriterInstance(null)を返すだけです。- 戻り値:
- ImageWriterインスタンス。
- 例外:
- IOException- ライター・クラスのロードや初期化、またはライター・オブジェクトのインスタンス化や初期化でエラーが発生した場合。
 
- 
createWriterInstancepublic abstract ImageWriter createWriterInstance(Object extension) throws IOExceptionこのサービス・プロバイダに関連するImageWriter実装のインスタンスを返します。 返されるオブジェクトの初期状態は、resetメソッドの呼出し後のような状態です。構築時に Objectをプラグインに提供できます。 オブジェクトの特性は、プラグインによって異なります。通常、プラグインは return new MyImageWriter(this)などのコードを使用してこのメソッドを実装します。- パラメータ:
- extension- プラグイン固有の拡張オブジェクト。- nullも可。
- 戻り値:
- ImageWriterインスタンス。
- 例外:
- IOException- ライターのインスタンス化に失敗した場合。
- IllegalArgumentException- 拡張オブジェクトが適切でないことを示すために- ImageWriterのコンストラクタが- IllegalArgumentExceptionをスローする場合。
 
- 
isOwnWriterpublic boolean isOwnWriter(ImageWriter writer)渡されたImageWriterオブジェクトがこのサービス・プロバイダに関連するImageWriterのインスタンスの場合は、trueを返します。- パラメータ:
- writer-- ImageWriterインスタンス。
- 戻り値:
- writerが認識される場合は- true
- 例外:
- IllegalArgumentException-- writerが- nullの場合。
 
- 
getImageReaderSpiNamespublic String[] getImageReaderSpiNames()このサービス・プロバイダに関連するImageWriterが使用する内部メタデータ表現を認識可能なImageReaderSpiクラスのすべての完全修飾名を含むString配列を返します。この種のImageReadersが指定されていない場合はnullを返します。null以外の値が返される場合は、0以外の長さになります。配列の最初の項目は、 ImageIO.getImageReader(ImageWriter)から返されるImageReaderのインスタンス化で使用されるため、「優先される」リーダーのサービス・プロバイダ名である必要があります。このメカニズムは、 ImageWriterが認識する構造内でピクセル以外のメタデータ(IIOExtraDataInfoを参照)を生成するImageReadersの取得に使用できます。 イメージを読み込み、このメソッドで取得したいずれかのImageReadersからこのデータを取得し、それをImageWriterに渡すと、クライアント・プログラムですべてのメタデータを保持しつつ、イメージの読込みや変更、書戻しを行うことができ、メタデータの内部構造やイメージ形式でさえ何も意識する必要はありません。- 戻り値:
- ImageReaderSpiの名前を含む長さ1以上の- Stringの配列、または- null。
- 関連項目:
- ImageIO.getImageReader(ImageWriter),- ImageReaderSpi.getImageWriterSpiNames()
 
 
-