クラス 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
-
canFilterIndexColorModel
- filterRGB メソッドに、ピクセル値の代わりに IndexColorModel
のテーブルのエントリを渡すことができるかどうかを示す。
-
newmodel
-
-
origmodel
-
-
RGBImageFilter()
-
-
filterIndexColorModel(IndexColorModel)
- IndexColorModel オブジェクトの色テーブルの各要素を
filterRGB メソッドに通すフィルタ。
-
filterRGB(int, int, int)
- サブクラスは、入力の RGB ColorModel の 1ピクセルを
変換するメソッドを定義しなければならない。
-
filterRGBPixels(int, int, int, int, int[], int, int)
- RGB ColorModel のピクセル値の塊にフィルタをかける。
-
setColorModel(ColorModel)
- カラーモデルが IndexColorModel で、
サブクラスの canFilterIndexColorModel が true なら、
setPixels メソッドでもとのカラーモデルが指定されたときもしくはここで、
フィルタをかけたカラーモデルを代入する。
-
setPixels(int, int, int, int, ColorModel, byte[], int, int)
- もし指定 ColorModel がすでに変換してあるものと同じなら、
変換後の ColorModel を使ってピクセルを単に通過させる。
-
setPixels(int, int, int, int, ColorModel, int[], int, int)
- もし指定 ColorModel がすでに変換してあるものと同じなら、
変換後の ColorModel を使ってピクセルを単に通過させる。
-
substituteColorModel(ColorModel, ColorModel)
- 置き換えのために2つの ColorModel オブジェクトを登録する。
origmodel
protected ColorModel origmodel
newmodel
protected ColorModel newmodel
canFilterIndexColorModel
protected boolean canFilterIndexColorModel
- filterRGB メソッドに、ピクセル値の代わりに IndexColorModel
のテーブルのエントリを渡すことができるかどうかを示す。
サブクラスでは、filterRGB メソッドがフィルタをかけるピクセルの
座標に依存していないなら、コンストラクタでこの変数を true にしなければならない。
- 参照:
- substituteColorModel, filterRGB, IndexColorModel
RGBImageFilter
public RGBImageFilter()
setColorModel
public void setColorModel(ColorModel model)
- カラーモデルが IndexColorModel で、
サブクラスの canFilterIndexColorModel が true なら、
setPixels メソッドでもとのカラーモデルが指定されたときもしくはここで、
フィルタをかけたカラーモデルを代入する。
そうでないなら、ImageProducer で使われるカラーモデルをオーバーライドして、
デフォルトの ColorModelを代わりに指定する。
- オーバーライド:
- クラス ImageFilter の setColorModel
- 参照:
- ImageConsumer, getRGBdefault
substituteColorModel
public void substituteColorModel(ColorModel oldcm,
ColorModel newcm)
- 置き換えのために2つの ColorModel オブジェクトを登録する。
oldcm が setPixels メソッドで現われた場合、
newcm に置き換えられてピクセルが無修正で (新しい ColorModel で) 通過する。
- パラメータ:
- oldcm - 処理中に置き換えられる ColorModel オブジェクト
- newcm - 処理中に oldcm を置き換える ColorModel オブジェクト
filterIndexColorModel
public IndexColorModel filterIndexColorModel(IndexColorModel icm)
- IndexColorModel オブジェクトの色テーブルの各要素を
filterRGB メソッドに通すフィルタ。
filterRGB メソッドを呼ぶとき、色テーブルの要素であることを
示すために (-1, -1) という座標を渡す。
- パラメータ:
- icm - フィルタをかけられる IndexColorModel オブジェクト
- 返り値:
- フィルタをかけた新しい IndexColorModel
filterRGBPixels
public void filterRGBPixels(int x,
int y,
int w,
int h,
int pixels[],
int off,
int scansize)
- RGB ColorModel のピクセル値の塊にフィルタをかける。
1ピクセル毎に filterRGB メソッドが呼ばれる。
- 参照:
- getRGBdefault, filterRGB
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 メソッドに渡す。
- オーバーライド:
- クラス ImageFilter の setPixels
- 参照:
- getRGBdefault, filterRGBPixels
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 メソッドに渡す。
- オーバーライド:
- クラス ImageFilter の setPixels
- 参照:
- getRGBdefault, filterRGBPixels
filterRGB
public abstract int filterRGB(int x,
int y,
int rgb)
- サブクラスは、入力の RGB ColorModel の 1ピクセルを
変換するメソッドを定義しなければならない。
- 参照:
- getRGBdefault, filterRGBPixels
全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス
本マニュアルに関する著作権および商標