クラスImageReaderSpi

すべての実装されたインタフェース:
RegisterableService

public abstract class ImageReaderSpi extends ImageReaderWriterSpi
ImageReaderのサービス・プロバイダ・インタフェース(SPI)です。 サービス・プロバイダ・クラスの詳細は、IIORegistryクラスのクラス・コメントを参照してください。

ImageReaderSpiは、関連するImageReaderクラスに関する複数の情報タイプを提供します。

SPIクラスを定義するベンダー名とクラスの簡潔な説明は、getVendorNamegetDescription、およびgetVersionメソッドで取得できます。 これらのメソッドは、国際化してロケール固有の出力を行うことが可能です。 これらのメソッドの主な目的は、ポップアップ・メニューなどのリスト編成に使用可能で、簡潔かつ判読可能な情報を提供することです。

サービスに関連する形式名、ファイル接尾辞、およびMIMEタイプのリストは、それぞれgetFormatNamesgetFileSuffixes、およびgetMIMETypesメソッドで取得できます。 これらのメソッドは、手動の形式選択、ファイルの命名、またはMIME関連付け(たとえば、HTTP経由または電子メール添付のファイル・アクセス)に基づき特定のファイルまたはストリームをデコードする際、候補となるImageReaderの識別に使用できます。

特定のデータ・ストリームを構文解析できる可能性の高いImageReaderを判定するための、より信頼性の高い手段がcanDecodeInputメソッドに用意されています。 サービス・プロバイダは、このメソッドを使用して実際のストリーム内容を検証できます。

このサービス・プロバイダに関連するImageReaderクラスのインスタンスは、createReaderInstanceメソッドを呼び出すことで取得できます。 ネイティブ・ライブラリのロードや大規模な表作成などの負荷の高い初期化は、少なくともこのメソッドが最初に呼び出されるまで延期する必要があります。

関連項目:
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected Class<?>[]
    getInputTypesから返されるClassオブジェクトの配列で、最初はnullです。
    static final Class<?>[]
    非推奨。
    このフィールドを使用するかわりに、同等の配列{ ImageInputStream.class }を直接作成します。
    protected String[]
    getImageWriterSpiNamesから返される文字列の配列で、最初はnullです。

    クラスで宣言されたフィールド ImageReaderWriterSpi

    extraImageMetadataFormatClassNames, extraImageMetadataFormatNames, extraStreamMetadataFormatClassNames, extraStreamMetadataFormatNames, MIMETypes, names, nativeImageMetadataFormatClassName, nativeImageMetadataFormatName, nativeStreamMetadataFormatClassName, nativeStreamMetadataFormatName, pluginClassName, suffixes, supportsStandardImageMetadataFormat, supportsStandardStreamMetadataFormat
    修飾子と型
    フィールド
    説明
    protected String[]
    このプラグインがサポートするすべての追加イメージ・メタデータ形式のクラス名を含むString配列で、最初はnullです。
    protected String[]
    このプラグインがサポートするすべての追加イメージ・メタデータ形式の名前を含むString配列で、最初はnullです。
    protected String[]
    このプラグインがサポートするすべての追加ストリーム・メタデータ形式のクラス名を含むString配列で、最初はnullです。
    protected String[]
    このプラグインがサポートするすべての追加ストリーム・メタデータ形式の名前を含むString配列で、最初はnullです。
    protected String[]
    getMIMETypesから返される文字列の配列で、最初はnullです。
    protected String[]
    getFormatNamesから返される文字列の配列で、最初はnullです。
    protected String
    このプラグインでサポートされるネイティブのストリーム・メタデータ形式のクラス名を含むStringで、最初はnullです。
    protected String
    このプラグインでサポートされるネイティブのストリーム・メタデータ形式の名前を含むStringで、最初はnullです。
    protected String
    このプラグインでサポートされるネイティブのストリーム・メタデータ形式のクラス名を含むStringで、最初はnullです。
    protected String
    このプラグインでサポートされるネイティブのストリーム・メタデータ形式の名前を含むStringで、最初はnullです。
    protected String
    関連するプラグイン・クラスの名前を含むStringで、最初はnullです。
    protected String[]
    getFileSuffixesから返される文字列の配列で、最初はnullです。
    protected boolean
    このプラグインがイメージ・メタデータに標準のメタデータ形式をサポートするかどうかを示すbooleanで、最初はfalseです。
    protected boolean
    このプラグインがストリーム・メタデータに標準のメタデータ形式をサポートするかどうかを示すbooleanで、最初はfalseです。

    クラスで宣言されたフィールド IIOServiceProvider

    vendorName, version
    修飾子と型
    フィールド
    説明
    protected String
    getVendorNameから返されるStringで、最初はnullです。
    protected String
    getVersionから返されるStringで、最初はnullです。
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    空白の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
    指定されたソース・オブジェクトがこのリーダーでサポートされる形式であると見なされる場合にtrueを返します。
    このサービス・プロバイダに関連するImageReader実装のインスタンスを返します。
    abstract ImageReader
    このサービス・プロバイダに関連するImageReader実装のインスタンスを返します。
    このサービス・プロバイダに関連するImageReaderが使用する内部メタデータ表現を認識可能なImageWriterSpiクラスすべての完全修飾名を含むString配列を返します。この種のImageWriterが指定されていない場合はnullを返します。
    Class<?>[]
    リーダーのsetInputメソッドの引数に使用可能なオブジェクトの型を示すClassオブジェクトの配列を返します。
    boolean
    渡されたImageReaderオブジェクトがこのサービス・プロバイダに関連するImageReaderのインスタンスの場合は、trueを返します。

    クラスで宣言されたメソッド ImageReaderWriterSpi

    getExtraImageMetadataFormatNames, getExtraStreamMetadataFormatNames, getFileSuffixes, getFormatNames, getImageMetadataFormat, getMIMETypes, getNativeImageMetadataFormatName, getNativeStreamMetadataFormatName, getPluginClassName, getStreamMetadataFormat, isStandardImageMetadataFormatSupported, isStandardStreamMetadataFormatSupported
    修飾子と型
    メソッド
    説明
    このプラグインが作成または使用するイメージ・メタデータ・オブジェクトで、getAsTreeおよびsetFromTreeメソッドが認識する、ネイティブおよび標準形式以外の追加ドキュメント形式の名前を含むString配列を返します。
    このプラグインが作成または使用するストリーム・メタデータ・オブジェクトで、getAsTreeおよびsetFromTreeメソッドが認識する、ネイティブおよび標準形式以外の追加ドキュメント形式の名前を含むString配列を返します。
    このサービス・プロバイダに関連するImageReaderまたはImageWriter実装で一般的に使用可能な形式に関連付けられたファイル接尾辞のリストを含むString配列を返します。
    このサービス・プロバイダに関連するImageReaderまたはImageWriter実装で一般的に使用できる形式の判読可能な名前を含むString配列を返します。
    指定されたイメージ・メタデータ形式を説明するIIOMetadataFormatオブジェクト、または説明がない場合はnullを返します。
    このサービス・プロバイダに関連するImageReaderまたはImageWriter実装で一般的に使用可能な形式に関連付けられたMIMEタイプのリストを含むString配列を返します。
    このプラグインの「ネイティブ」イメージ・メタデータ形式の名前を返します。通常、この形式を使用すると、このプラグインが処理する形式で格納されているイメージ・メタデータを劣化せず、にエンコードおよび転送できます。
    このプラグインの「ネイティブ」ストリーム・メタデータ形式の名前を返します。通常、この形式を使用すると、このプラグインが処理する形式で格納されているストリーム・メタデータを劣化せずに、エンコードおよび転送できます。
    このサービス・プロバイダに関連するImageReaderまたはImageWriterプラグインの完全修飾クラス名を返します。
    指定されたストリーム・メタデータ形式を説明するIIOMetadataFormatオブジェクト、または説明がない場合はnullを返します。
    boolean
    このプラグインが作成または使用するイメージ・メタデータ・オブジェクトで、getAsTreeおよびsetFromTreeメソッドが認識するドキュメント形式に標準のメタデータ形式が含まれる場合は、trueを返します。
    boolean
    このプラグインが作成または使用するストリーム・メタデータ・オブジェクトでgetAsTreeおよびsetFromTreeメソッドが認識するドキュメント形式に標準のメタデータ形式が含まれる場合は、trueを返します。

    クラスで宣言されたメソッド IIOServiceProvider

    getDescription, getVendorName, getVersion, onDeregistration, onRegistration
    修飾子と型
    メソッド
    説明
    abstract String
    このサービス・プロバイダとそれに関連する実装の、簡潔で判読可能な説明を返します。
    このサービス・プロバイダおよび関連する実装の構築を担当するベンダーの名前を返します。
    このサービス・プロバイダとそれに関連する実装のバージョン番号を表す文字列を返します。
    void
    onDeregistration(ServiceRegistry registry, Class<?> category)
    SpiクラスがServiceRegistryから登録解除されると常にコールバックが実行されます。
    void
    onRegistration(ServiceRegistry registry, Class<?> category)
    Spiクラスがインスタンス化されてServiceRegistryに登録されたあとで1回だけ呼び出されるコールバックです。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • フィールド詳細

    • 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 - null String以外の、関連付けられたImageReaderクラスの完全修飾名。
      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 - vendorNamenullの場合。
      IllegalArgumentException - versionnullの場合。
      IllegalArgumentException - namesnullまたは長さ0の場合。
      IllegalArgumentException - readerClassNamenullの場合。
      IllegalArgumentException - inputTypesnullまたは長さ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を返す必要があります。

      sourcegetInputTypesから返されたクラスのいずれでもない場合、このメソッドはfalseを返すだけです。

      パラメータ:
      source - デコードされるオブジェクト。通常はImageInputStream
      戻り値:
      このストリームをデコード可能な場合はtrue
      スロー:
      IllegalArgumentException - sourcenullである場合。
      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 - readernullの場合。
    • getImageWriterSpiNames

      public String[] getImageWriterSpiNames()
      このサービス・プロバイダに関連するImageReaderが使用する内部メタデータ表現を認識可能なImageWriterSpiクラスすべての完全修飾名を含むString配列を返します。この種のImageWriterが指定されていない場合はnullを返します。 null以外の値が返される場合は、0以外の長さになります。

      配列の最初の項目は、ImageIO.getImageWriter(ImageReader)から返されるImageWriterのインスタンス化で使用されるため、「優先される」ライターのサービス・プロバイダ名である必要があります。

      このメカニズムは、ImageReaderで生成されたピクセル以外のメタデータ(IIOTreeInfoを参照)の内部構造を認識するImageWritersの取得に使用できます。 ImageReaderからこのデータを取得して、このメソッドで取得したいずれかのImageWritersに渡すと、クライアント・プログラムで、すべてのメタデータを保持しつつ、イメージの読込みや変更、書戻しを行うことができ、メタデータの内部構造やイメージ形式でさえ何も意識する必要はありません。

      戻り値:
      ImageWriterSpiの名前を含む長さ1以上のStringの配列、またはnull
      関連項目: