public abstract class ImageReaderSpi extends ImageReaderWriterSpi
ImageReaderのサービス・プロバイダ・インタフェース(SPI)です。サービス・プロバイダ・クラスの詳細は、IIORegistryクラスのクラス・コメントを参照してください。
各ImageReaderSpiは、関連するImageReaderクラスに関する複数の情報タイプを提供します。
SPIクラスを定義するベンダー名とクラスの簡潔な説明は、getVendorName、getDescription、およびgetVersionメソッドで取得できます。これらのメソッドは、国際化してロケール固有の出力を行うことが可能です。これらのメソッドの主な目的は、ポップアップ・メニューなどのリスト編成に使用可能で、簡潔かつ判読可能な情報を提供することです。
サービスに関連する形式名、ファイル接尾辞、およびMIMEタイプのリストは、それぞれgetFormatNames、getFileSuffixes、およびgetMIMETypesメソッドで取得できます。これらのメソッドは、手動の形式選択、ファイルの命名、またはMIME関連付け(たとえば、HTTP経由または電子メール添付のファイル・アクセス)に基づき特定のファイルまたはストリームをデコードする際、候補となるImageReaderの識別に使用できます。
特定のデータ・ストリームを構文解析できる可能性の高いImageReaderを判定するための、より信頼性の高い手段がcanDecodeInputメソッドに用意されています。サービス・プロバイダは、このメソッドを使用して実際のストリーム内容を検証できます。
このサービス・プロバイダに関連するImageReaderクラスのインスタンスは、createReaderInstanceメソッドを呼び出すことで取得できます。ネイティブ・ライブラリのロードや大規模な表作成などの負荷の高い初期化は、少なくともこのメソッドが最初に呼び出されるまで延期する必要があります。
IIORegistry, ImageReader| 修飾子と型 | フィールドと説明 |
|---|---|
protected Class[] |
inputTypes
getInputTypesから返されるClassオブジェクトの配列で、最初はnullです。 |
static Class[] |
STANDARD_INPUT_TYPE
非推奨。
このフィールドを使用する代わりに、同等の配列
{ ImageInputStream.class }を直接作成してください。 |
protected String[] |
writerSpiNames
getImageWriterSpiNamesから返される文字列の配列で、最初はnullです。 |
extraImageMetadataFormatClassNames, extraImageMetadataFormatNames, extraStreamMetadataFormatClassNames, extraStreamMetadataFormatNames, MIMETypes, names, nativeImageMetadataFormatClassName, nativeImageMetadataFormatName, nativeStreamMetadataFormatClassName, nativeStreamMetadataFormatName, pluginClassName, suffixes, supportsStandardImageMetadataFormat, supportsStandardStreamMetadataFormatvendorName, version| 修飾子 | コンストラクタと説明 |
|---|---|
protected |
ImageReaderSpi()
空白の
ImageReaderSpiを構築します。 |
|
ImageReaderSpi(String vendorName, String version, String[] names, String[] suffixes, String[] MIMETypes, String readerClassName, Class[] inputTypes, String[] writerSpiNames, boolean supportsStandardStreamMetadataFormat, String nativeStreamMetadataFormatName, String nativeStreamMetadataFormatClassName, String[] extraStreamMetadataFormatNames, String[] extraStreamMetadataFormatClassNames, boolean supportsStandardImageMetadataFormat, String nativeImageMetadataFormatName, String nativeImageMetadataFormatClassName, String[] extraImageMetadataFormatNames, String[] extraImageMetadataFormatClassNames)
指定された値セットを使用して
ImageReaderSpiを構築します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
abstract boolean |
canDecodeInput(Object source)
指定されたソース・オブジェクトがこのリーダーでサポートされる形式であると見なされる場合に
trueを返します。 |
ImageReader |
createReaderInstance()
このサービス・プロバイダに関連する
ImageReader実装のインスタンスを返します。 |
abstract ImageReader |
createReaderInstance(Object extension)
このサービス・プロバイダに関連する
ImageReader実装のインスタンスを返します。 |
String[] |
getImageWriterSpiNames()
このサービス・プロバイダに関連する
ImageReaderが使用する内部メタデータ表現を認識可能なImageWriterSpiクラスすべての完全修飾名を含むString配列を返します。この種のImageWriterが指定されていない場合はnullを返します。 |
Class[] |
getInputTypes()
リーダーの
setInputメソッドの引数に使用可能なオブジェクトの型を示すClassオブジェクトの配列を返します。 |
boolean |
isOwnReader(ImageReader reader)
渡された
ImageReaderオブジェクトがこのサービス・プロバイダに関連するImageReaderのインスタンスの場合は、trueを返します。 |
getExtraImageMetadataFormatNames, getExtraStreamMetadataFormatNames, getFileSuffixes, getFormatNames, getImageMetadataFormat, getMIMETypes, getNativeImageMetadataFormatName, getNativeStreamMetadataFormatName, getPluginClassName, getStreamMetadataFormat, isStandardImageMetadataFormatSupported, isStandardStreamMetadataFormatSupportedgetDescription, getVendorName, getVersion, onDeregistration, onRegistration@Deprecated public static final Class[] STANDARD_INPUT_TYPE
{ ImageInputStream.class }を直接作成してください。getInputTypesから返される単一要素の配列で、最初はImageInputStream.classが格納されています。protected Class[] inputTypes
getInputTypesから返されるClassオブジェクトの配列で、最初はnullです。protected String[] writerSpiNames
getImageWriterSpiNamesから返される文字列の配列で、最初はnullです。protected ImageReaderSpi()
ImageReaderSpiを構築します。すべてのメソッドの作業バージョンを提供するための、インスタンス変数の初期化やメソッド実装のオーバーライドは、サブクラスで行う必要があります。public ImageReaderSpi(String vendorName, String version, String[] names, String[] suffixes, String[] MIMETypes, String readerClassName, Class[] inputTypes, String[] writerSpiNames, boolean supportsStandardStreamMetadataFormat, String nativeStreamMetadataFormatName, String nativeStreamMetadataFormatClassName, String[] extraStreamMetadataFormatNames, String[] extraStreamMetadataFormatClassNames, boolean supportsStandardImageMetadataFormat, String nativeImageMetadataFormatName, String nativeImageMetadataFormatClassName, String[] extraImageMetadataFormatNames, String[] extraImageMetadataFormatClassNames)
ImageReaderSpiを構築します。vendorName - ベンダー名(null以外のString)。version - バージョン識別子(null以外のString)。names - 形式名を示すnull以外のString配列。1つ以上のエントリが存在する必要がある。suffixes - 共通のファイル接尾辞を示すString配列。接尾辞が定義されていない場合は、nullを指定する。長さ0の配列はnullに正規化される。MIMETypes - 形式のMIMEタイプを示すString配列。MIMEタイプが定義されていない場合は、nullを指定する。長さ0の配列はnullに正規化される。readerClassName - 関連付けられたImageReaderクラスの完全修飾名(null以外のString)。inputTypes - 正当な入力タイプを示す、長さ1以上のClassオブジェクトの配列(null以外)。writerSpiNames - 関連するすべてのImageWriterのクラスを命名する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 - readerClassNameがnullの場合。IllegalArgumentException - inputTypesがnullまたは長さ0の場合。public Class[] getInputTypes()
setInputメソッドの引数に使用可能なオブジェクトの型を示すClassオブジェクトの配列を返します。
ImageInputStreamからの入力を受け取るだけの大半のリーダーの場合、ImageInputStream.classを含む単一要素の配列が返されます。
Classオブジェクトの、null以外の配列。public abstract boolean canDecodeInput(Object source) throws IOException
trueを返します。このメソッドからtrueが返されても読込みに成功することは保証されず、ストリーム内容の簡潔な検証に基づき成功の可能性がかなり高いと見なされたにすぎません。ソースがImageInputStreamの場合、実装は一般的にストリームの最初の数バイトをチェックして、この形式に関連付けられた「マジック番号」を確認します。実際の読込みが開始されても、デコーディングが完了するまでいつでもリーダーは失敗する可能性があります。
ほかのImageReaderSpiがオブジェクトをデコードできるかどうか適切に判定できるように、オブジェクトの状態を妨げないことが重要です。特に、ソースがImageInputStreamの場合、mark/resetのペアを使用してストリーム位置を保持する必要があります。
ほとんどすべてのストリームの読込みを試みる可能性のある「raw」などの形式では、より適切なものよりも優先して呼び出されるのを避けるために、falseを返す必要があります。
sourceがgetInputTypesから返されたクラスのいずれでもない場合、このメソッドはfalseを返すだけです。
source - デコードされるオブジェクト。通常はImageInputStream。true。IllegalArgumentException - sourceがnullの場合。IOException - ストリームの読取り中に入出力エラーが発生した場合。public ImageReader createReaderInstance() throws IOException
ImageReader実装のインスタンスを返します。返されるオブジェクトの初期状態は、resetメソッドの呼出し後のような状態です。
デフォルトの実装では、createReaderInstance(null)を返すだけです。
ImageReaderインスタンス。IOException - リーダー・クラスのロードや初期化、またはリーダー・オブジェクトのインスタンス化や初期化でエラーが発生した場合。public abstract ImageReader createReaderInstance(Object extension) throws IOException
ImageReader実装のインスタンスを返します。返されるオブジェクトの初期状態は、resetメソッドの呼出し後のような状態です。
構築時にObjectをプラグインに提供できます。オブジェクトの特性は、プラグインによって異なります。
通常、プラグインはreturn new MyImageReader(this)などのコードを使用してこのメソッドを実装します。
extension - プラグイン固有の拡張オブジェクト。nullも可。ImageReaderインスタンス。IOException - リーダーのインスタンス化に失敗した場合。IllegalArgumentException - 拡張オブジェクトが適切でないことを示すためにImageReaderのコンストラクタがIllegalArgumentExceptionをスローする場合。public boolean isOwnReader(ImageReader reader)
ImageReaderオブジェクトがこのサービス・プロバイダに関連するImageReaderのインスタンスの場合は、trueを返します。
デフォルトの実装では、引数readerの完全指定クラス名とコンストラクタに渡されたクラス名を比較します。さらに高度なチェックが必要な場合は、このメソッドをオーバーライドできます。
reader - ImageReaderインスタンス。readerが認識される場合はtrue。IllegalArgumentException - readerがnullの場合。public String[] getImageWriterSpiNames()
ImageReaderが使用する内部メタデータ表現を認識可能なImageWriterSpiクラスすべての完全修飾名を含むString配列を返します。この種のImageWriterが指定されていない場合はnullを返します。null以外の値が返される場合は、0以外の長さになります。
配列の最初の項目は、ImageIO.getImageWriter(ImageReader)から返されるImageWriterのインスタンス化で使用されるため、「優先される」ライターのサービス・プロバイダ名である必要があります。
このメカニズムは、ImageReaderで生成されたピクセル以外のメタデータ(IIOTreeInfoを参照)の内部構造を認識するImageWritersの取得に使用できます。ImageReaderからこのデータを取得して、このメソッドで取得したいずれかのImageWritersに渡すと、クライアント・プログラムで、すべてのメタデータを保持しつつ、イメージの読込みや変更、書戻しを行うことができ、メタデータの内部構造やイメージ形式でさえ何も意識する必要はありません。
ImageWriterSpiの名前を含む長さ1以上のStringの配列、またはnull。ImageIO.getImageWriter(ImageReader) バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.