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

クラスRescaleOp

java.lang.Object
java.awt.image.RescaleOp
すべての実装されたインタフェース:
BufferedImageOp, RasterOp

public class RescaleOp extends Object implements BufferedImageOp, RasterOp
このクラスでは、転送元イメージのデータのピクセル単位の再スケーリングを行います。各ピクセルのサンプル値とスケーリング係数の積を求め、オフセットを加算します。 スケールされたサンプル値は、転送先のイメージで表示できる最小、最大値でクリップされます。

再スケーリング演算の仮想コードを次に示します。

for each pixel from Source object {
    for each band/component of the pixel {
        dstElement = (srcElement*scaleFactor) + offset
    }
}
 

Rasterの場合、再スケーリングはバンドを演算します。 スケーリング定数セットが1つの場合は同じ定数がすべてのバンドに適用されます。スケーリング定数セットが複数の場合、その数は転送元Rasterのバンド数と一致しなければいけません。

BufferedImageの場合、再スケーリングは色とアルファ成分を演算します。 スケーリング定数セットが1つの場合は同じ定数がすべての色成分に適用されますが、アルファ成分には適用されません。 スケーリング定数セットが複数あり、その数が転送元の色成分数と一致する場合、アルファ成分が存在してもその再スケーリングは実行されません。 スケーリング定数セットが複数あり、その数が転送元の色成分数とアルファ成分数の合計と一致する場合、ルックアップはすべての色成分およびアルファ成分に対して実行されます。

再スケーリングでは、あらかじめ乗算されたアルファ・データを持つBufferedImageソースは、あらかじめ乗算されていないアルファ・データ・イメージと同様に扱われます。 つまり、データがあらかじめ乗算されていることを考慮せずに、BufferedImageソースのrawデータについて、バンドごとに再スケーリングが実行されます。 転送先のColorModelで色の変換が必要な場合、このステップでは、あらかじめ乗算されていることが転送元と転送先の両方で考慮されます。

IndexColorModelを持つイメージは再スケーリングできません。

コンストラクタでRenderingHintsオブジェクトが指定された場合、色変換が必要なときに、カラー描画ヒントおよびディザリング・ヒントを使用できます。

インプレース操作(転送元と転送先に同じオブジェクトを指定すること)が許可されます。

関連項目:
RenderingHints.KEY_COLOR_RENDERING, RenderingHints.KEY_DITHERING
  • コンストラクタの詳細

    • RescaleOp

      public RescaleOp(float[] scaleFactors, float[] offsets, RenderingHints hints)
      必要なスケーリング係数とオフセットを持つ、新しいRescaleOpを構築します。 scaleFactorとoffset配列の長さは、上記のクラス・コメントの要件を満たすものである必要があります。 RenderingHints引数はnullでも構いません。
      パラメータ:
      scaleFactors - 指定されたスケーリング係数
      offsets - 指定されたオフセット
      hints - 指定されたRenderingHints、またはnull
    • RescaleOp

      public RescaleOp(float scaleFactor, float offset, RenderingHints hints)
      必要なスケーリング係数とオフセットを持つ、新しいRescaleOpを構築します。 scaleFactorとoffsetは、転送元Rasterのすべてのバンド、BufferedImageのすべての色成分(アルファ成分は除く)に適用されます。 RenderingHints引数はnullでも構いません。
      パラメータ:
      scaleFactor - 指定されたスケーリング係数
      offset - 指定されたオフセット
      hints - 指定されたRenderingHints、またはnull
  • メソッドの詳細

    • getScaleFactors

      public final float[] getScaleFactors(float[] scaleFactors)
      指定された配列のスケーリング係数を返します。 使いやすくするために配列も返すようになっています。 scaleFactorsがnullの場合、新しい配列が割り当てられます。
      パラメータ:
      scaleFactorsこのRescaleOpのスケーリング係数を含む配列
      戻り値:
      このRescaleOpのスケーリング係数。
    • getOffsets

      public final float[] getOffsets(float[] offsets)
      指定された配列のオフセットを返します。 使いやすくするために配列も返すようになっています。 offsetsがnullの場合、新しい配列が割り当てられます。
      パラメータ:
      offsetsこのRescaleOpのオフセットを含む配列
      戻り値:
      このRescaleOpのオフセット。
    • getNumFactors

      public final int getNumFactors()
      このRescaleOpのスケーリング係数とオフセットを返します。
      戻り値:
      このRescaleOpのスケーリング係数とオフセットの数。
    • filter

      public final BufferedImage filter(BufferedImage src, BufferedImage dst)
      転送元BufferedImageの再スケーリングを行います。 転送元イメージのカラー・モデルが転送先イメージのカラー・モデルと異なる場合、転送先でピクセルが変換されます。 転送先のイメージがnullの場合、転送元のColorModelを使用してBufferedImageが生成されます。 このオブジェクトのスケーリング係数およびオフセットの数が、上記のクラス・コメントの要件を満たさない場合、または転送元イメージがIndexColorModelを持つ場合、IllegalArgumentExceptionがスローされます。
      定義:
      filter、インタフェース: BufferedImageOp
      パラメータ:
      src - フィルタ処理されるBufferedImage
      dst - フィルタ処理対象の転送先またはnull
      戻り値:
      フィルタ処理されたBufferedImage
      例外:
      IllegalArgumentException - srcColorModelIndexColorModelである場合、またはこのRescaleOpのスケーリング・ファクタおよびオフセットの数がクラス・コメントに記載された要件を満たさない場合、またはソース・イメージと宛先イメージのサイズが異なる場合。
    • filter

      public final WritableRaster filter(Raster src, WritableRaster dst)
      転送元Rasterのピクセル・データの再スケーリングを行います。 転送先Rasterがnullの場合、新しいRasterが生成されます。 転送元と転送先のバンドの数は一致しなければいけません。 この要件を満たさない場合はIllegalArgumentExceptionがスローされます。 このオブジェクトのスケーリング係数およびオフセットの数は、上記のクラス・コメントの要件を満たさなければいけません。 この要件を満たさない場合はIllegalArgumentExceptionがスローされます。
      定義:
      filter、インタフェース: RasterOp
      パラメータ:
      src - フィルタ処理されるRaster
      dst - フィルタ処理対象の転送先またはnull
      戻り値:
      フィルタ処理されたWritableRaster
      例外:
      IllegalArgumentException - srcdstに同じ数のバンドがない場合、またはこのRescaleOpのスケーリング・ファクタとオフセットの数がクラス・コメントに記載された要件を満たしていない場合、またはソースと宛先ラスターのサイズが異なる場合。
    • getBounds2D

      public final Rectangle2D getBounds2D(BufferedImage src)
      再スケーリングされた転送先イメージのバウンディング・ボックスを返します。 これは幾何学的な操作ではないので、バウンディング・ボックスは変化しません。
      定義:
      getBounds2D、インタフェース: BufferedImageOp
      パラメータ:
      src - フィルタ処理されるBufferedImage
      戻り値:
      転送先のイメージのバウンディング・ボックスを表すRectangle2D
    • getBounds2D

      public final Rectangle2D getBounds2D(Raster src)
      再スケーリングされた転送先Rasterのバウンディング・ボックスを返します。 これは幾何学的な操作ではないので、バウンディング・ボックスは変化しません。
      定義:
      getBounds2D、インタフェース: RasterOp
      パラメータ:
      src - 再スケーリングされた転送先のRaster
      戻り値:
      指定されたRasterの境界。
    • createCompatibleDestImage

      public BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel destCM)
      適切なサイズおよびバンド数で、ゼロ化された転送先イメージを生成します。
      定義:
      createCompatibleDestImage、インタフェース: BufferedImageOp
      パラメータ:
      src - フィルタ・オペレーションのソース・イメージ。
      destCM - 転送先のColorModel。 nullの場合、ソースのColorModelを使用
      戻り値:
      ゼロ化された転送先イメージ。
    • createCompatibleDestRaster

      public WritableRaster createCompatibleDestRaster(Raster src)
      指定されたソースで、適切なサイズ、適切な数のバンドを持つゼロ化された転送先Rasterを生成します。
      定義:
      createCompatibleDestRaster、インタフェース: RasterOp
      パラメータ:
      src - 転送元Raster
      戻り値:
      ゼロ化された転送先Raster
    • getPoint2D

      public final Point2D getPoint2D(Point2D srcPt, Point2D dstPt)
      指定された転送元のポイントに対応する、転送先のポイントの位置を返します。 dstPtがnullでない場合は、戻り値の格納先として使用されます。 幾何学的な操作ではないため、srcPtはdstPtと等しくなります。
      定義:
      getPoint2D、インタフェース: BufferedImageOp
      定義:
      getPoint2D、インタフェース: RasterOp
      パラメータ:
      srcPt - 転送元イメージのポイント
      dstPt - 転送先ポイント、またはnull
      戻り値:
      転送先ポイントの位置
    • getRenderingHints

      public final RenderingHints getRenderingHints()
      この操作の描画ヒントを返します。
      定義:
      getRenderingHints、インタフェース: BufferedImageOp
      定義:
      getRenderingHints、インタフェース: RasterOp
      戻り値:
      このRescaleOpの描画ヒント。