モジュール java.desktop
パッケージ java.awt.image

クラスRGBImageFilter

  • すべての実装されたインタフェース:
    ImageConsumer, Cloneable
    直系の既知のサブクラス:
    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()
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      RGBImageFilter()  
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      IndexColorModel filterIndexColorModel​(IndexColorModel icm)
      IndexColorModelオブジェクトをフィルタ処理します。RGBImageFilterサブクラスが提供するfilterRGB機能により、オブジェクトのカラー表の各エントリを処理します。
      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のピクセル・バッファをフィルタ処理します。filterRGBメソッドで1つずつ渡され、処理されます。
      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を使用して単純にピクセルを渡します。そうでない場合、intピクセルのバッファをデフォルトのRGB ColorModelに変換し、変換されたバッファをfilterRGBPixelsメソッドへ渡し、1つずつ変換します。
      void substituteColorModel​(ColorModel oldcm, ColorModel newcm)
      置換用の2つのColorModelオブジェクトを登録します。
    • フィールドの詳細

      • origmodel

        protected ColorModel origmodel
        ユーザーがsubstituteColorModelを呼び出したときにColorModelnewmodelによって置き換えられます。
      • 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によって呼び出されることを想定して実装されています。 このクラスを使用してイメージのピクセルをフィルタ処理する開発者は、このメソッドを直接呼び出さないでください。このメソッドを直接呼び出すと、フィルタ操作を妨げる可能性があります。

        定義:
        setColorModel、インタフェースImageConsumer
        オーバーライド:
        setColorModel、クラスImageFilter
        パラメータ:
        model - 指定されたColorModel
        関連項目:
        ImageConsumerColorModel.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によって呼び出されることを想定して実装されています。 このクラスを使用してイメージのピクセルをフィルタ処理する開発者は、このメソッドを直接呼び出さないでください。このメソッドを直接呼び出すと、フィルタ操作を妨げる可能性があります。

        定義:
        setPixels、インタフェースImageConsumer
        オーバーライド:
        setPixels、クラスImageFilter
        パラメータ:
        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によって呼び出されることを想定して実装されています。 このクラスを使用してイメージのピクセルをフィルタ処理する開発者は、このメソッドを直接呼び出さないでください。このメソッドを直接呼び出すと、フィルタ操作を妨げる可能性があります。

        定義:
        setPixels、インタフェースImageConsumer
        オーバーライド:
        setPixels、クラスImageFilter
        パラメータ:
        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)