クラス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));
         }
     }

関連項目:
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected boolean
    このboolean型は、IndexColorModelオブジェクトのカラー表エントリに対して、filterRGBメソッドのカラー・フィルタ処理を、ピクセル単位のフィルタ処理の代わりに使用できるかどうかを示します。
    protected ColorModel
    ユーザーがsubstituteColorModelを呼び出したときにorigmodelを置き換えるColorModelです。
    protected ColorModel
    ユーザーがsubstituteColorModelを呼び出したときにColorModelnewmodelによって置き換えられます。

    クラスで宣言されたフィールド ImageFilter

    consumer
    修飾子と型
    フィールド
    説明
    protected ImageConsumer
    特別なイメージ・データ・ストリームのコンシューマであり、ImageFilterのこのインスタンスがデータをフィルタ処理します。

    インタフェースで宣言されたフィールド ImageConsumer

    COMPLETESCANLINES, IMAGEABORTED, IMAGEERROR, RANDOMPIXELORDER, SINGLEFRAME, SINGLEFRAMEDONE, SINGLEPASS, STATICIMAGEDONE, TOPDOWNLEFTRIGHT
    修飾子と型
    フィールド
    説明
    static final int
    ピクセルは、1度に(複数の)完全な走査線単位で転送されます。
    static final int
    イメージ生成が故意に中断されました。
    static final int
    イメージの生成中にエラーが発生しました。
    static final int
    ピクセルの転送順序はランダムです。
    static final int
    イメージ・データは、1枚の静止画像を含んでいます。
    static final int
    イメージの1フレームの転送が完了しましたが、まだ転送対象のフレームがあります。
    static final int
    ピクセルは1つのパスで転送されます。
    static final int
    イメージの転送が完了し、転送対象のピクセルもフレームも残っていません。
    static final int
    ピクセルは上から下、左から右の順で転送されます。
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    サブクラスが呼び出すためのコンストラクタ。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    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
    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
    置換用の2つのColorModelオブジェクトを登録します。

    クラスで宣言されたメソッド ImageFilter

    clone, getFilterInstance, imageComplete, resendTopDownLeftRight, setDimensions, setHints, setProperties
    修飾子と型
    メソッド
    説明
    このオブジェクトを複製します。
    指定されたImageConsumerのフィルタ・リングを実際に行うImageFilterオブジェクトの一意なインスタンスを返します。
    void
    imageComplete(int status)
    ImageConsumerインタフェースのimageCompleteメソッドで提供される情報にフィルタをかけます。
    void
    ImageConsumerからのピクセル・データ再転送要求に応じます。上から下、左から右の順番で処理されます。
    void
    setDimensions(int width, int height)
    ImageConsumerインタフェースのsetDimensionsメソッドで提供される情報をフィルタ処理します。
    void
    setHints(int hints)
    ImageConsumerインタフェースのsetHintsメソッドで提供される情報をフィルタ処理します。
    void
    フィルタのストリームを通過したことを示すプロパティを追加したあと、ソース・オブジェクトからプロパティを渡します。

    クラスオブジェクトで宣言されたメソッド

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • フィールド詳細

    • origmodel

      protected ColorModel origmodel
      ユーザーがsubstituteColorModelを呼び出したときにColorModelnewmodelによって置き換えられます。
    • newmodel

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

      protected boolean canFilterIndexColorModel
      このboolean型は、IndexColorModelオブジェクトのカラー表エントリに対して、filterRGBメソッドのカラー・フィルタ処理を、ピクセル単位のフィルタ処理の代わりに使用できるかどうかを示します。 filterRGBメソッドが、フィルタ処理を行うピクセルの座標に依存しない場合、サブクラスはこの変数をコンストラクタでtrueに設定しなければいけません。
      関連項目:
  • コンストラクタの詳細

    • RGBImageFilter

      protected 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
      関連項目:
    • 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 - 配列内のあるピクセル行から次のピクセル行までの距離
      関連項目:
    • 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配列内のあるピクセル行から次のピクセル行までの距離
      関連項目:
    • 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配列内のあるピクセル行から次のピクセル行までの距離
      関連項目:
    • filterRGB

      public abstract int filterRGB(int x, int y, int rgb)
      サブクラスは、デフォルトのRGB ColorModelの1つの入力ピクセルを1つの出力ピクセルに変換するメソッドを指定しなければいけません。
      パラメータ:
      x - ピクセルのX座標
      y - ピクセルのY座標
      rgb - デフォルトRGBカラー・モデルの整数型ピクセル表現
      戻り値:
      デフォルトRGBカラー・モデルのフィルタ処理されたピクセル
      関連項目: