モジュール java.desktop
パッケージ 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つのメソッドを通してすべてのピクセル・データを変換するための呼出しを提供する抽象クラスです。このメソッドは、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を呼び出したときにColorModelnewmodelによって置き換えられます。

    クラス java.awt.image.ImageFilterで宣言されたフィールド

    consumer
  • コンストラクタのサマリー

    コンストラクタ 
    コンストラクタ 説明
    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オブジェクトを登録します。

    クラス java.awt.image.ImageFilterで宣言されたメソッド

    clone, getFilterInstance, imageComplete, resendTopDownLeftRight, setDimensions, setHints, setProperties

    クラス java.lang.Objectで宣言されたメソッド

    equalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait
  • フィールド詳細

    • 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
  • コンストラクタの詳細

  • メソッドの詳細

    • 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)