JavaTM 2 Platform
Std. Ed. v1.3

java.awt.image
クラス RGBImageFilter

java.lang.Object
  |
  +--java.awt.image.ImageFilter
        |
        +--java.awt.image.RGBImageFilter
すべての実装インタフェース:
Cloneable, ImageConsumer
直系の既知のサブクラス:
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
          ユーザが substituteColorModel を呼び出したときに origmodel を置き換える ColorModel です。
protected  ColorModel origmodel
          ユーザが substituteColorModel を呼び出したときに newmodel によって置き換えられる ColorModel です。
 
クラス java.awt.image.ImageFilter から継承したフィールド
consumer
 
インタフェース java.awt.image.ImageConsumer から継承したフィールド
COMPLETESCANLINES, IMAGEABORTED, IMAGEERROR, RANDOMPIXELORDER, SINGLEFRAME, SINGLEFRAMEDONE, SINGLEPASS, STATICIMAGEDONE, TOPDOWNLEFTRIGHT
 
コンストラクタの概要
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
ユーザが substituteColorModel を呼び出したときに newmodel によって置き換えられる ColorModel です。

newmodel

protected ColorModel newmodel
ユーザが substituteColorModel を呼び出したときに origmodel を置き換える ColorModel です。

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 を代わりに指定します。

注: このメソッドは、フィルタ操作の対象となるピクセルで構成される ImageImageProducer によって呼び出されます。このクラスを使用してイメージからピクセルをフィルタにかける開発者は、このメソッドを直接呼び出さないでください。このメソッドを直接呼び出すと、フィルタ操作を妨げる可能性があります。

オーバーライド:
クラス 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 つずつ変換します。

注: このメソッドは、フィルタ操作の対象となるピクセルで構成される ImageImageProducer によって呼び出されます。このクラスを使用してイメージからピクセルをフィルタにかける開発者は、このメソッドを直接呼び出さないでください。このメソッドを直接呼び出すと、フィルタ操作を妨げる可能性があります。

オーバーライド:
クラス 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 メソッドへ渡します。

注: このメソッドは、フィルタ操作の対象となるピクセルで構成される ImageImageProducer によって呼び出されます。このクラスを使用してイメージからピクセルをフィルタにかける開発者は、このメソッドを直接呼び出さないでください。このメソッドを直接呼び出すと、フィルタ操作を妨げる可能性があります。

オーバーライド:
クラス 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)

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.