JavaTM Platform
Standard Ed. 6

java.awt.image
クラス RGBImageFilter

java.lang.Object
  上位を拡張 java.awt.image.ImageFilter
      上位を拡張 java.awt.image.RGBImageFilter
すべての実装されたインタフェース:
ImageConsumer, Cloneable
直系の既知のサブクラス:
GrayFilter

public abstract class RGBImageFilter
extends ImageFilter

このクラスは、デフォルト RGB ColorModel イメージのピクセルを修正する ImageFilter を容易に作成するための方法を提供します。また、FilteredImageSource と組み合わせて、既存イメージのフィルタ処理に使われます。このクラスは、1 つのメソッドを通してすべてのピクセルデータを変換するための呼び出しを提供する abstract クラスです。 このメソッドは、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 メソッドで呼び出されるところではどこでも、フィルタ処理されたカラーモデルに置き換えます。ColorModel が IndexColorModel または null の場合、このメソッドは ImageProducer が使用するデフォルトの ColorModel をオーバーライドし、デフォルトの RGB ColorModel を代わりに指定します。  

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

定義:
インタフェース ImageConsumer 内の setColorModel
オーバーライド:
クラス ImageFilter 内の setColorModel
パラメータ:
model - 指定された ColorModel
関連項目:
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
例外:
NullPointerException - icm が null の場合

filterRGBPixels

public void filterRGBPixels(int x,
                            int y,
                            int w,
                            int h,
                            int[] pixels,
                            int off,
                            int scansize)
デフォルトの RGB ColorModel のピクセルバッファーをフィルタ処理します。filterRGB メソッドで 1 つずつ渡され、処理されます。

パラメータ:
x - ピクセル領域の左上隅の X 座標
y - ピクセル領域の左上隅の Y 座標
w - ピクセル領域の幅
h - ピクセル領域の高さ
pixels - ピクセルの配列
off - pixels 配列のオフセット
scansize - 配列内でのあるピクセル行から次のピクセル行までの 距離
関連項目:
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 によって呼び出されることを想定して実装されています。このクラスを使用してイメージのピクセルをフィルタ処理する開発者は、このメソッドを直接呼び出さないでください。 このメソッドを直接呼び出すと、フィルタ操作を妨げる可能性があります。

定義:
インタフェース ImageConsumer 内の setPixels
オーバーライド:
クラス ImageFilter 内の setPixels
パラメータ:
x - 設定されるピクセル領域の 左上隅の X 座標
y - 設定されるピクセル領域の 左上隅の Y 座標
w - ピクセル領域の幅
h - ピクセル領域の高さ
model - 指定された ColorModel
pixels - ピクセルの配列
off - pixels 配列のオフセット
scansize - pixels 配列内の あるピクセル行から次のピクセル行までの距離
関連項目:
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 によって呼び出されることを想定して実装されています。このクラスを使用してイメージのピクセルをフィルタ処理する開発者は、このメソッドを直接呼び出さないでください。 このメソッドを直接呼び出すと、フィルタ操作を妨げる可能性があります。

定義:
インタフェース ImageConsumer 内の setPixels
オーバーライド:
クラス ImageFilter 内の setPixels
パラメータ:
x - 設定されるピクセル領域の 左上隅の X 座標
y - 設定されるピクセル領域の 左上隅の Y 座標
w - ピクセル領域の幅
h - ピクセル領域の高さ
model - 指定された ColorModel
pixels - ピクセルの配列
off - pixels 配列のオフセット
scansize - pixels 配列内の あるピクセル行から次のピクセル行までの距離
関連項目:
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 つの出力ピクセルに変換するメソッドを指定しなければなりません。

パラメータ:
x - ピクセルの X 座標
y - ピクセルの Y 座標
rgb - デフォルト RGB カラーモデルの整数型 ピクセル表現
戻り値:
デフォルト RGB カラーモデルのフィルタ処理されたピクセル
関連項目:
ColorModel.getRGBdefault(), filterRGBPixels(int, int, int, int, int[], int, int)

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。