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

クラス java.awt.image.RGBImageFilter

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

public class RGBImageFilter
extends ImageFilter
このクラスを使うと、RGB ColorModel のイメージのピクセルを修正するような ImageFilter を簡単に作成できる。 存在するイメージにフィルタをかけるために、 FilteredImageSource と接続して使われる。 このクラスは抽象クラスであり、ImageProducer で使用されている ColorModel に関わらず RGB ColorModel で 1つのピクセルを変換するメソッドを実装する必要がある。 使用できるフィルタを作成するために実装する必要があるのは filterRGB メソッドのみである。 イメージの赤成分と青成分を交換するフィルタの定義例を挙げる:
	class RedBlueSwapFilter extends RGBImageFilter {
	    public RedBlueSwapFilter() {
		// このフィルタの操作はピクセルの位置に依存しない。
		// よって、IndexColorModel もそのままフィルタに
		// かけることができる。
		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
filterRGB メソッドに、ピクセル値の代わりに IndexColorModel のテーブルのエントリを渡すことができるかどうかを示す。
 o newmodel
 o origmodel

Constructor Index

 o RGBImageFilter()

Method Index

 o filterIndexColorModel(IndexColorModel)
IndexColorModel オブジェクトの色テーブルの各要素を filterRGB メソッドに通すフィルタ。
 o filterRGB(int, int, int)
サブクラスは、入力の RGB ColorModel の 1ピクセルを 変換するメソッドを定義しなければならない。
 o filterRGBPixels(int, int, int, int, int[], int, int)
RGB ColorModel のピクセル値の塊にフィルタをかける。
 o setColorModel(ColorModel)
カラーモデルが IndexColorModel で、 サブクラスの canFilterIndexColorModel が true なら、 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 を使ってピクセルを単に通過させる。
 o substituteColorModel(ColorModel, ColorModel)
置き換えのために2つの ColorModel オブジェクトを登録する。

Variables

 o origmodel
  protected ColorModel origmodel
 o newmodel
  protected ColorModel newmodel
 o canFilterIndexColorModel
  protected boolean canFilterIndexColorModel
filterRGB メソッドに、ピクセル値の代わりに IndexColorModel のテーブルのエントリを渡すことができるかどうかを示す。 サブクラスでは、filterRGB メソッドがフィルタをかけるピクセルの 座標に依存していないなら、コンストラクタでこの変数を true にしなければならない。
参照:
substituteColorModel, filterRGB, IndexColorModel

Constructors

 o RGBImageFilter
  public RGBImageFilter()

Methods

 o setColorModel
  public void setColorModel(ColorModel model)
カラーモデルが IndexColorModel で、 サブクラスの canFilterIndexColorModel が true なら、 setPixels メソッドでもとのカラーモデルが指定されたときもしくはここで、 フィルタをかけたカラーモデルを代入する。 そうでないなら、ImageProducer で使われるカラーモデルをオーバーライドして、 デフォルトの ColorModelを代わりに指定する。
オーバーライド:
クラス ImageFiltersetColorModel
参照:
ImageConsumer, getRGBdefault
 o substituteColorModel
  public void substituteColorModel(ColorModel oldcm,
                                   ColorModel newcm)
置き換えのために2つの ColorModel オブジェクトを登録する。 oldcm が setPixels メソッドで現われた場合、 newcm に置き換えられてピクセルが無修正で (新しい ColorModel で) 通過する。
パラメータ:
oldcm - 処理中に置き換えられる ColorModel オブジェクト
newcm - 処理中に oldcm を置き換える ColorModel オブジェクト
 o filterIndexColorModel
  public IndexColorModel filterIndexColorModel(IndexColorModel icm)
IndexColorModel オブジェクトの色テーブルの各要素を filterRGB メソッドに通すフィルタ。 filterRGB メソッドを呼ぶとき、色テーブルの要素であることを 示すために (-1, -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 のピクセル値の塊にフィルタをかける。 1ピクセル毎に filterRGB メソッドが呼ばれる。
参照:
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 に変換し、 1ライン毎に filterRGBPixels メソッドに渡す。
オーバーライド:
クラス 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 に変換し、 1走査線毎に filterRGBPixels メソッドに渡す。
オーバーライド:
クラス ImageFiltersetPixels
参照:
getRGBdefault, filterRGBPixels
 o filterRGB
  public abstract int filterRGB(int x,
                                int y,
                                int rgb)
サブクラスは、入力の RGB ColorModel の 1ピクセルを 変換するメソッドを定義しなければならない。
参照:
getRGBdefault, filterRGBPixels

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

本マニュアルに関する著作権および商標