- java.lang.Object
-
- javax.imageio.spi.IIOServiceProvider
-
- javax.imageio.spi.ImageReaderWriterSpi
-
- javax.imageio.spi.ImageReaderSpi
-
- すべての実装されたインタフェース:
RegisterableService
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
です。-
クラス javax.imageio.spi.ImageReaderWriterSpiで宣言されたフィールド
extraImageMetadataFormatClassNames, extraImageMetadataFormatNames, extraStreamMetadataFormatClassNames, extraStreamMetadataFormatNames, MIMETypes, names, nativeImageMetadataFormatClassName, nativeImageMetadataFormatName, nativeStreamMetadataFormatClassName, nativeStreamMetadataFormatName, pluginClassName, suffixes, supportsStandardImageMetadataFormat, supportsStandardStreamMetadataFormat
-
クラス javax.imageio.spi.IIOServiceProviderで宣言されたフィールド
vendorName, 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
を返します。-
クラス 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_INPUT_TYPE
@Deprecated public static final Class<?>[] STANDARD_INPUT_TYPE
非推奨。このフィールドを使用するかわりに、同等の配列{ ImageInputStream.class }
を直接作成します。getInputTypes
から返される単一要素の配列で、最初はImageInputStream.class
が格納されています。
-
inputTypes
protected Class<?>[] inputTypes
getInputTypes
から返されるClass
オブジェクトの配列で、最初はnull
です。
-
writerSpiNames
protected String[] writerSpiNames
getImageWriterSpiNames
から返される文字列の配列で、最初はnull
です。
-
-
コンストラクタの詳細
-
ImageReaderSpi
protected ImageReaderSpi()
空白の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の場合。
-
-
メソッドの詳細
-
getInputTypes
public Class<?>[] getInputTypes()
リーダーのsetInput
メソッドの引数に使用可能なオブジェクトの型を示すClass
オブジェクトの配列を返します。ImageInputStream
からの入力を受け取るだけの大半のリーダーの場合、ImageInputStream.class
を含む単一要素の配列が返されます。- 戻り値:
- 長さ1以上の
Class
オブジェクトの、null
以外の配列。
-
canDecodeInput
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
- ストリームの読取り中に入出力エラーが発生した場合。
-
createReaderInstance
public ImageReader createReaderInstance() throws IOException
このサービス・プロバイダに関連するImageReader
実装のインスタンスを返します。 返されるオブジェクトの初期状態は、reset
メソッドの呼出し後のような状態です。デフォルトの実装では、
createReaderInstance(null)
を返すだけです。- 戻り値:
ImageReader
インスタンス。- 例外:
IOException
- リーダー・クラスのロードや初期化、またはリーダー・オブジェクトのインスタンス化や初期化でエラーが発生した場合。
-
createReaderInstance
public abstract ImageReader createReaderInstance(Object extension) throws IOException
このサービス・プロバイダに関連するImageReader
実装のインスタンスを返します。 返されるオブジェクトの初期状態は、reset
メソッドの呼出し後のような状態です。構築時に
Object
をプラグインに提供できます。 オブジェクトの特性は、プラグインによって異なります。通常、プラグインは
return new MyImageReader(this)
などのコードを使用してこのメソッドを実装します。- パラメータ:
extension
- プラグイン固有の拡張オブジェクト。null
も可。- 戻り値:
ImageReader
インスタンス。- 例外:
IOException
- リーダーのインスタンス化に失敗した場合。IllegalArgumentException
- 拡張オブジェクトが適切でないことを示すためにImageReader
のコンストラクタがIllegalArgumentException
をスローする場合。
-
isOwnReader
public boolean isOwnReader(ImageReader reader)
渡されたImageReader
オブジェクトがこのサービス・プロバイダに関連するImageReader
のインスタンスの場合は、true
を返します。デフォルトの実装では、引数
reader
の完全指定クラス名とコンストラクタに渡されたクラス名を比較します。 さらに高度なチェックが必要な場合は、このメソッドをオーバーライドできます。- パラメータ:
reader
-ImageReader
インスタンス。- 戻り値:
reader
が認識される場合はtrue
。- 例外:
IllegalArgumentException
-reader
がnull
の場合。
-
getImageWriterSpiNames
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)
-
-