Java プラットフォーム 1.2

java.awt.image
クラス RGBImageFilter

java.lang.Object
  |
  +--java.awt.image.ImageFilter
        |
        +--java.awt.image.RGBImageFilter
直接の既知のサブクラス:
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));
	    }
	}

 

関連項目:
FilteredImageSource, ImageFilter, ColorModel.getRGBdefault()

フィールドの概要
protected  boolean canFilterIndexColorModel
          この boolean 型は、IndexColorModel オブジェクトのカラーテーブルエントリに対して、filterRGB メソッドのカラーフィルタリングを、フィルタリングによるピクセルの代わりに使用できるかどうかを示します。
protected  ColorModel newmodel
           
protected  ColorModel origmodel
           
 
クラス java.awt.image.ImageFilter から継承したフィールド
consumer
 
コンストラクタの概要
RGBImageFilter()
           
 
メソッドの概要
 IndexColorModel filterIndexColorModel(IndexColorModel icm)
          IndexColorModel オブジェクトにフィルタをかけます。
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 のピクセルバッファにフィルタをかけます。
 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 を使用してピクセルを単に通過させます。
 void substituteColorModel(ColorModel oldcm, ColorModel newcm)
          置換用の 2 つの ColorModel オブジェクトを登録します。
 
クラス java.awt.image.ImageFilter から継承したメソッド
clone, getFilterInstance, imageComplete, resendTopDownLeftRight, setDimensions, setHints, setProperties
 
クラス java.lang.Object から継承したメソッド
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

origmodel

protected ColorModel origmodel

newmodel

protected ColorModel newmodel

canFilterIndexColorModel

protected boolean canFilterIndexColorModel
この boolean 型は、IndexColorModel オブジェクトのカラーテーブルエントリに対して、filterRGB メソッドのカラーフィルタリングを、フィルタリングによるピクセルの代わりに使用できるかどうかを示します。filterRGB メソッドが、フィルタをかけるピクセルの座標に依存しない場合、サブクラスはこの変数をコンストラクタで true に設定しなければなりません。
関連項目:
substituteColorModel(java.awt.image.ColorModel, java.awt.image.ColorModel), filterRGB(int, int, int), IndexColorModel
コンストラクタの詳細

RGBImageFilter

public RGBImageFilter()
メソッドの詳細

setColorModel

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

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

filterRGBPixels

public void filterRGBPixels(int x,
                            int y,
                            int w,
                            int h,
                            int[] pixels,
                            int off,
                            int scansize)
デフォルトの RGB ColorModel のピクセルバッファにフィルタをかけます。これは、filterRGB メソッドを介して 1 つずつ渡すことにより行われます。
関連項目:
ColorModel.getRGBdefault(), filterRGB(int, int, int)

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 つずつ変換します。
オーバーライド:
クラス ImageFilter 内の setPixels
関連項目:
ColorModel.getRGBdefault(), filterRGBPixels(int, int, int, int, int[], int, int)

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 メソッドへ渡します。
オーバーライド:
クラス ImageFilter 内の setPixels
関連項目:
ColorModel.getRGBdefault(), filterRGBPixels(int, int, int, int, int[], int, int)

filterRGB

public abstract int filterRGB(int x,
                              int y,
                              int rgb)
サブクラスはメソッドを指定して、デフォルトの RGB ColorModel の 1 つの入力ピクセルを 1 つの出力ピクセルに変換しなければなりません。
関連項目:
ColorModel.getRGBdefault(), filterRGBPixels(int, int, int, int, int[], int, int)

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.