クラスRGBImageFilter
java.lang.Object
java.awt.image.ImageFilter
java.awt.image.RGBImageFilter
- すべての実装されたインタフェース:
ImageConsumer, Cloneable
- 直系の既知のサブクラス:
GrayFilter
public abstract class RGBImageFilter extends ImageFilter
このクラスは、デフォルトRGB ColorModelイメージのピクセルを修正するImageFilterを容易に作成するための方法を提供します。 また、FilteredImageSourceと組み合わせて、既存イメージのフィルタ処理に使われます。 このクラスは、1つのメソッドを通してすべてのピクセル・データを変換するための呼出しを提供する抽象クラスです。このメソッドは、ImageProducerで使われているColorModelに関係なく、デフォルトのRGB ColorModelでピクセルを一度に変換します。 使用可能なイメージ・フィルタを作成するために定義する必要がある唯一の方法は、filterRGBメソッドです。 次に、イメージの赤色成分と青色成分を交換するフィルタ定義の例を示します。
class RedBlueSwapFilter extends RGBImageFilter {
public RedBlueSwapFilter() {
// The filter's operation does not depend on the
// pixel's location, so IndexColorModels can be
// filtered directly.
canFilterIndexColorModel = true;
}
public int filterRGB(int x, int y, int rgb) {
return ((rgb & 0xff00ff00)
| ((rgb & 0xff0000) >> 16)
| ((rgb & 0xff) << 16));
}
}
- 関連項目:
-
フィールドのサマリー
フィールド修飾子と型フィールド説明protected booleanこのboolean型は、IndexColorModelオブジェクトのカラー表エントリに対して、filterRGBメソッドのカラー・フィルタ処理を、ピクセル単位のフィルタ処理の代わりに使用できるかどうかを示します。protected ColorModelユーザーがsubstituteColorModelを呼び出したときにorigmodelを置き換えるColorModelです。protected ColorModelユーザーがsubstituteColorModelを呼び出したときにColorModelがnewmodelによって置き換えられます。クラスで宣言されたフィールド ImageFilter
consumer修飾子と型フィールド説明protected ImageConsumer特別なイメージ・データ・ストリームのコンシューマであり、ImageFilterのこのインスタンスがデータをフィルタ処理します。インタフェースで宣言されたフィールド ImageConsumer
COMPLETESCANLINES, IMAGEABORTED, IMAGEERROR, RANDOMPIXELORDER, SINGLEFRAME, SINGLEFRAMEDONE, SINGLEPASS, STATICIMAGEDONE, TOPDOWNLEFTRIGHT修飾子と型フィールド説明static final intピクセルは、1度に(複数の)完全な走査線単位で転送されます。static final intイメージ生成が故意に中断されました。static final intイメージの生成中にエラーが発生しました。static final intピクセルの転送順序はランダムです。static final intイメージ・データは、1枚の静止画像を含んでいます。static final intイメージの1フレームの転送が完了しましたが、まだ転送対象のフレームがあります。static final intピクセルは1つのパスで転送されます。static final intイメージの転送が完了し、転送対象のピクセルもフレームも残っていません。static final intピクセルは上から下、左から右の順で転送されます。 -
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明IndexColorModelオブジェクトをフィルタ処理します。RGBImageFilterサブクラスが提供するfilterRGB機能により、オブジェクトのカラー表の各エントリを処理します。abstract intfilterRGB(int x, int y, int rgb) サブクラスは、デフォルトのRGB ColorModelの1つの入力ピクセルを1つの出力ピクセルに変換するメソッドを指定しなければいけません。voidfilterRGBPixels(int x, int y, int w, int h, int[] pixels, int off, int scansize) デフォルトのRGB ColorModelのピクセル・バッファをフィルタ処理します。filterRGBメソッドで1つずつ渡され、処理されます。voidsetColorModel(ColorModel model) ColorModelがIndexColorModelで、サブクラスがcanFilterIndexColorModelフラグをtrueに設定した場合は、元のColorModelオブジェクトがsetPixelsメソッドで呼び出されるところではどこでも、フィルタ処理されたカラー・モデルに置き換えます。voidsetPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize) ColorModelオブジェクトが、すでに変換されたオブジェクトと同じである場合、変換されたColorModelを使用して単純にピクセルを渡します。voidsetPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, int scansize) ColorModelオブジェクトが、すでに変換されたオブジェクトと同じである場合、変換されたColorModelを使用して単純にピクセルを渡します。そうでない場合、intピクセルのバッファをデフォルトのRGB ColorModelに変換し、変換されたバッファをfilterRGBPixelsメソッドへ渡し、1つずつ変換します。voidsubstituteColorModel(ColorModel oldcm, ColorModel newcm) 置換用の2つのColorModelオブジェクトを登録します。クラスで宣言されたメソッド ImageFilter
clone, getFilterInstance, imageComplete, resendTopDownLeftRight, setDimensions, setHints, setProperties修飾子と型メソッド説明clone()このオブジェクトを複製します。指定されたImageConsumerのフィルタ・リングを実際に行うImageFilterオブジェクトの一意なインスタンスを返します。voidimageComplete(int status) ImageConsumerインタフェースのimageCompleteメソッドで提供される情報にフィルタをかけます。voidImageConsumerからのピクセル・データ再転送要求に応じます。上から下、左から右の順番で処理されます。voidsetDimensions(int width, int height) ImageConsumerインタフェースのsetDimensionsメソッドで提供される情報をフィルタ処理します。voidsetHints(int hints) ImageConsumerインタフェースのsetHintsメソッドで提供される情報をフィルタ処理します。voidsetProperties(Hashtable<?, ?> props) フィルタのストリームを通過したことを示すプロパティを追加したあと、ソース・オブジェクトからプロパティを渡します。クラスオブジェクトで宣言されたメソッド
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait修飾子と型メソッド説明booleanこのオブジェクトと他のオブジェクトが等しいかどうかを示します。protected voidfinalize()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は非推奨であり、将来のリリースで削除される可能性があります。final Class<?> getClass()このObjectの実行時クラスを返します。inthashCode()このオブジェクトに対するハッシュ・コード値を返します。final voidnotify()このオブジェクトのモニターで待機中のスレッドを1つ再開します。final voidこのオブジェクトのモニターで待機中のすべてのスレッドを再開します。toString()オブジェクトの文字列表現を返します。final voidwait()現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。final voidwait(long timeoutMillis) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。final voidwait(long timeoutMillis, int nanos) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
-
フィールド詳細
-
origmodel
protected ColorModel origmodelユーザーがsubstituteColorModelを呼び出したときにColorModelがnewmodelによって置き換えられます。 -
newmodel
protected ColorModel newmodelユーザーがsubstituteColorModelを呼び出したときにorigmodelを置き換えるColorModelです。 -
canFilterIndexColorModel
protected boolean canFilterIndexColorModelこのboolean型は、IndexColorModelオブジェクトのカラー表エントリに対して、filterRGBメソッドのカラー・フィルタ処理を、ピクセル単位のフィルタ処理の代わりに使用できるかどうかを示します。 filterRGBメソッドが、フィルタ処理を行うピクセルの座標に依存しない場合、サブクラスはこの変数をコンストラクタでtrueに設定しなければいけません。- 関連項目:
-
-
コンストラクタの詳細
-
RGBImageFilter
protected RGBImageFilter()サブクラスが呼び出すためのコンストラクタ。
-
-
メソッドの詳細
-
setColorModel
public void setColorModel(ColorModel model) ColorModelがIndexColorModelで、サブクラスがcanFilterIndexColorModelフラグをtrueに設定した場合は、元のColorModelオブジェクトがsetPixelsメソッドで呼び出されるところではどこでも、フィルタ処理されたカラー・モデルに置き換えます。 ColorModelがIndexColorModelまたはnullの場合、このメソッドはImageProducerが使用するデフォルトのColorModelをオーバーライドし、デフォルトのRGB ColorModelを代わりに指定します。ノート: このメソッドは、フィルタ処理の対象となるピクセルで構成される
ImageのImageProducerによって呼び出されることを想定して実装されています。 このクラスを使用してイメージのピクセルをフィルタ処理する開発者は、このメソッドを直接呼び出さないでください。このメソッドを直接呼び出すと、フィルタ操作を妨げる可能性があります。- 定義:
setColorModel、インタフェースImageConsumer- オーバーライド:
setColorModel、クラスImageFilter- パラメータ:
model- 指定されたColorModel- 関連項目:
-
substituteColorModel
public void substituteColorModel(ColorModel oldcm, ColorModel newcm) 置換用の2つのColorModelオブジェクトを登録します。 setPixelsメソッドでoldcmが検出された場合はnewcmに置き換えられ、ピクセルは新しいColorModelオブジェクトを使用してそのまま渡されます。- パラメータ:
oldcm- 処理中に置き換えられるColorModelオブジェクトnewcm- 処理中にoldcmを置き換えるColorModelオブジェクト
-
filterIndexColorModel
public IndexColorModel filterIndexColorModel(IndexColorModel icm) IndexColorModelオブジェクトをフィルタ処理します。RGBImageFilterサブクラスが提供するfilterRGB機能により、オブジェクトのカラー表の各エントリを処理します。 -1の座標は、カラー表エントリがフィルタ処理されていることを示しますが、これは実際のピクセル値ではありません。- パラメータ:
icm- フィルタ処理されるIndexColorModelオブジェクト- 戻り値:
- フィルタ処理された色を表す新しいIndexColorModel
- スロー:
NullPointerException-icmがnullである場合
-
filterRGBPixels
public void filterRGBPixels(int x, int y, int w, int h, int[] pixels, int off, int scansize) デフォルトのRGB ColorModelのピクセル・バッファをフィルタ処理します。filterRGBメソッドで1つずつ渡され、処理されます。- パラメータ:
x- ピクセル領域の左上隅のX座標y- ピクセル領域の左上隅のY座標w- ピクセル領域の幅h- ピクセル領域の高さpixels- ピクセルの配列off-pixels配列へのオフセットscansize- 配列内のあるピクセル行から次のピクセル行までの距離- 関連項目:
-
setPixels
public void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize) ColorModelオブジェクトが、すでに変換されたオブジェクトと同じである場合、変換されたColorModelを使用して単純にピクセルを渡します。 そうでない場合、byteピクセルのバッファをデフォルトのRGB ColorModelに変換し、変換されたバッファをfilterRGBPixelsメソッドに渡し、1つずつ変換します。ノート: このメソッドは、フィルタ処理の対象となるピクセルで構成される
ImageのImageProducerによって呼び出されることを想定して実装されています。 このクラスを使用してイメージのピクセルをフィルタ処理する開発者は、このメソッドを直接呼び出さないでください。このメソッドを直接呼び出すと、フィルタ操作を妨げる可能性があります。- 定義:
setPixels、インタフェースImageConsumer- オーバーライド:
setPixels、クラスImageFilter- パラメータ:
x- 設定されるピクセルの領域の左上隅のX座標y- 設定されるピクセルの領域の左上隅のY座標w- ピクセル領域の幅h- ピクセル領域の高さmodel- 指定されたColorModelpixels- ピクセルの配列off-pixels配列へのオフセットscansize-pixels配列内のあるピクセル行から次のピクセル行までの距離- 関連項目:
-
setPixels
public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, int scansize) ColorModelオブジェクトが、すでに変換されたオブジェクトと同じである場合、変換されたColorModelを使用して単純にピクセルを渡します。そうでない場合、intピクセルのバッファをデフォルトのRGB ColorModelに変換し、変換されたバッファをfilterRGBPixelsメソッドへ渡し、1つずつ変換します。 intピクセルのバッファをデフォルトのRGB ColorModelに変換し、変換されたバッファをfilterRGBPixelsメソッドへ渡します。ノート: このメソッドは、フィルタ処理の対象となるピクセルで構成される
ImageのImageProducerによって呼び出されることを想定して実装されています。 このクラスを使用してイメージのピクセルをフィルタ処理する開発者は、このメソッドを直接呼び出さないでください。このメソッドを直接呼び出すと、フィルタ操作を妨げる可能性があります。- 定義:
setPixels、インタフェースImageConsumer- オーバーライド:
setPixels、クラスImageFilter- パラメータ:
x- 設定されるピクセルの領域の左上隅のX座標y- 設定されるピクセルの領域の左上隅のY座標w- ピクセル領域の幅h- ピクセル領域の高さmodel- 指定されたColorModelpixels- ピクセルの配列off-pixels配列へのオフセットscansize-pixels配列内のあるピクセル行から次のピクセル行までの距離- 関連項目:
-
filterRGB
public abstract int filterRGB(int x, int y, int rgb) サブクラスは、デフォルトのRGB ColorModelの1つの入力ピクセルを1つの出力ピクセルに変換するメソッドを指定しなければいけません。- パラメータ:
x- ピクセルのX座標y- ピクセルのY座標rgb- デフォルトRGBカラー・モデルの整数型ピクセル表現- 戻り値:
- デフォルトRGBカラー・モデルのフィルタ処理されたピクセル
- 関連項目:
-