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
によって置き換えられます。クラス java.awt.image.ImageFilterで宣言されたフィールド
consumer
インタフェース java.awt.image.ImageConsumerで宣言されたフィールド
COMPLETESCANLINES, IMAGEABORTED, IMAGEERROR, RANDOMPIXELORDER, SINGLEFRAME, SINGLEFRAMEDONE, SINGLEPASS, STATICIMAGEDONE, TOPDOWNLEFTRIGHT
-
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明IndexColorModelオブジェクトをフィルタ処理します。RGBImageFilterサブクラスが提供するfilterRGB機能により、オブジェクトのカラー表の各エントリを処理します。abstract int
filterRGB
(int x, int y, int rgb) サブクラスは、デフォルトのRGB ColorModelの1つの入力ピクセルを1つの出力ピクセルに変換するメソッドを指定しなければいけません。void
filterRGBPixels
(int x, int y, int w, int h, int[] pixels, int off, int scansize) デフォルトのRGB ColorModelのピクセル・バッファをフィルタ処理します。filterRGBメソッドで1つずつ渡され、処理されます。void
setColorModel
(ColorModel model) ColorModelがIndexColorModelで、サブクラスがcanFilterIndexColorModelフラグをtrueに設定した場合は、元のColorModelオブジェクトがsetPixelsメソッドで呼び出されるところではどこでも、フィルタ処理されたカラー・モデルに置き換えます。void
setPixels
(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize) ColorModelオブジェクトが、すでに変換されたオブジェクトと同じである場合、変換されたColorModelを使用して単純にピクセルを渡します。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つずつ変換します。void
substituteColorModel
(ColorModel oldcm, ColorModel newcm) 置換用の2つのColorModelオブジェクトを登録します。クラス java.awt.image.ImageFilterで宣言されたメソッド
clone, getFilterInstance, imageComplete, resendTopDownLeftRight, setDimensions, setHints, setProperties
-
フィールド詳細
-
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
- 指定されたColorModel
pixels
- ピクセルの配列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
- 指定されたColorModel
pixels
- ピクセルの配列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カラー・モデルのフィルタ処理されたピクセル
- 関連項目:
-