|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjavax.imageio.spi.IIOServiceProvider
javax.imageio.spi.ImageReaderWriterSpi
javax.imageio.spi.ImageReaderSpi
public abstract class ImageReaderSpi
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
getInputTypes から返される単一要素の配列で、最初は ImageInputStream.class が格納されています。 |
protected String[] |
writerSpiNames
getImageWriterSpiNames から返される文字列の配列で、最初は null です。 |
| クラス 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.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_INPUT_TYPE
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 - ストリームメタデータオブジェクトが 標準メタデータ形式で記述されたツリーを 使用可能かどうかを示す 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 - 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 の配列、 または nullImageIO.getImageWriter(ImageReader)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。