全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス

クラス java.awt.image.RGBImageFilter

java.lang.Object
   |
   +----java.awt.image.ImageFilter
           |
           +----java.awt.image.RGBImageFilter

public abstract class RGBImageFilter
extends ImageFilter
このクラスにより、デフォルト RGB ColorModel イメージのピクセルを修正する ImageFilter を容易に作成できます。また、FilteredImageSource と連結して、既存イメージにフィルタをかけるために使われます。このクラスは abstract クラスであり、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));
	    }
	}
 

参照:
FilteredImageSource, ImageFilter, getRGBdefault

Variable Index

 o canFilterIndexColorModel
この boolean 型は、IndexColorModel オブジェクトのカラーテーブルエントリに、filterRGB メソッドのカラーフィルタリングを、フィルタリングによるピクセルの代わりに使用するかどうかを示す。
 o newmodel
 o origmodel

Constructor Index

 o RGBImageFilter()

Method Index

 o filterIndexColorModel(IndexColorModel)
IndexColorModel オブジェクトにフィルタをかける。このフィルタリングは、RGBImageFilter サブクラスが提供する filterRGB 機能により、オブジェクトのカラーテーブルの各エントリに実行される。
 o filterRGB(int, int, int)
サブクラスはメソッドを指定して、デフォルトの RGB ColorModel の 1 つの入力ピクセルを 1 つの出力ピクセルに変換しなければならない。
 o filterRGBPixels(int, int, int, int, int[], int, int)
デフォルトの RGB ColorModel のピクセルバッファにフィルタをかける。これは、filterRGB メソッドを介して 1 つずつ渡すことにより行われる。
 o setColorModel(ColorModel)
ColorModel が IndexColorModel で、サブクラスが canFilterIndexColorModel フラグを true に設定した場合、元の ColorModel オブジェクトが setPixels メソッドで呼び出されるところはどこでも、フィルタをかけたカラーモデルに置換される。
 o setPixels(int, int, int, int, ColorModel, byte[], int, int)
ColorModel オブジェクトがすでに変換されたオブジェクトと同じ場合、変換された ColorModel を使用してピクセルを単に通過させる。
 o setPixels(int, int, int, int, ColorModel, int[], int, int)
ColorModel オブジェクトがすでに変換されたオブジェクトと同じ場合、変換された ColorModel を使用してピクセルを単に通過させる。ピクセルが通過しない場合、int ピクセルのバッファをデフォルトの RGB ColorModel へ変換し、変換されたバッファを filterRGBPixelsメソッドへ渡し、1 つずつ変換する。
 o substituteColorModel(ColorModel, ColorModel)
置換用に 2 つの ColorModel オブジェクトを登録する。

Variables

 o origmodel
  protected ColorModel origmodel
 o newmodel
  protected ColorModel newmodel
 o canFilterIndexColorModel
  protected boolean canFilterIndexColorModel
この boolean 型は、IndexColorModel オブジェクトのカラーテーブルエントリに filterRGB メソッドのカラーフィルタリングをフィルタリングによるピクセルの代わりに使用するどうかを示す。filterRGB メソッドが、フィルタをかけるピクセルの座標に依存しない場合、サブクラスはこの変数を構築子で true に設定しなければならない。

参照:
substituteColorModel, filterRGB, IndexColorModel

Constructors

 o RGBImageFilter
  public RGBImageFilter()

Methods

 o setColorModel
  public void setColorModel(ColorModel model)
ColorModel が IndexColorModel で、サブクラスが canFilterIndexColorModel フラグを true に設定した場合、元の ColorModel オブジェクトが setPixels メソッドで呼び出されるところはどこでも、フィルタをかけたカラーモデルに置換する。そのカラーモデルに置換しない場合、ImageProducer が使用するデフォルトの ColorModel をオーバーライドし、デフォルトの RGB ColorModel を代わりに指定する。

オーバーライド:
クラス ImageFiltersetColorModel
参照:
ImageConsumer, getRGBdefault
 o substituteColorModel
  public void substituteColorModel(ColorModel oldcm,
                                   ColorModel newcm)
置換用に 2 つの ColorModel オブジェクトを登録する。setPixels メソッドでoldcm が見つかった場合、newcm に置換され、(新しく ColorModel オブジェクトを使用して)無修正のピクセルが通過する。

パラメータ:
oldcm - 処理中に置き換えられる ColorModel オブジェクト
newcm - 処理中に oldcm を置き換える ColorModel オブジェクト
 o filterIndexColorModel
  public IndexColorModel filterIndexColorModel(IndexColorModel icm)
IndexColorModel オブジェクトにフィルタをかける。このフィルタリングは、RGBImageFilter サブクラスが提供する filterRGB 機能により、オブジェクトのカラーテーブルの各エントリに実行される。-1 の座標を用い、カラーテーブルエントリがフィルタをかけられていることを示すが、これは実際のピクセル値ではない。

パラメータ:
icm - フィルタをかけられる IndexColorModel オブジェクト
返り値:
カラーフィルタをかけた新しい IndexColorModel
 o filterRGBPixels
  public void filterRGBPixels(int x,
                              int y,
                              int w,
                              int h,
                              int pixels[],
                              int off,
                              int scansize)
デフォルトの RGB ColorModel のピクセルバッファにフィルタをかけます。これは、filterRGB メソッドを介して 1 つずつ渡すことにより行われます。

参照:
getRGBdefault, filterRGB
 o 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 つずつ変換します。

オーバーライド:
クラス ImageFiltersetPixels
参照:
getRGBdefault, filterRGBPixels
 o 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メソッドへ渡します。

オーバーライド:
クラス ImageFiltersetPixels
参照:
getRGBdefault, filterRGBPixels
 o filterRGB
  public abstract int filterRGB(int x,
                                int y,
                                int rgb)
サブクラスはメソッドを指定して、デフォルトの RGB ColorModel の 1 つの入力ピクセルを 1 つの出力ピクセルに変換しなければなりません。

参照:
getRGBdefault, filterRGBPixels

全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス