- すべての実装されたインタフェース:
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オブジェクトが指定された場合、色変換が必要なときに、カラー描画ヒントおよびディザリング・ヒントを使用できます。
インプレース操作(転送元と転送先に同じオブジェクトを指定すること)が許可されます。
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 RescaleOp(float[] scaleFactors, float[] offsets, RenderingHints hints)必要なスケーリング係数とオフセットを持つ、新しいRescaleOpを構築します。RescaleOp(float scaleFactor, float offset, RenderingHints hints)必要なスケーリング係数とオフセットを持つ、新しいRescaleOpを構築します。 -
メソッドのサマリー
修飾子と型 メソッド 説明 BufferedImagecreateCompatibleDestImage(BufferedImage src, ColorModel destCM)適切なサイズおよびバンド数で、ゼロ化された転送先イメージを生成します。WritableRastercreateCompatibleDestRaster(Raster src)指定されたソースで、適切なサイズ、適切な数のバンドを持つゼロ化された転送先Rasterを生成します。BufferedImagefilter(BufferedImage src, BufferedImage dst)転送元BufferedImageの再スケーリングを行います。WritableRasterfilter(Raster src, WritableRaster dst)転送元Rasterのピクセル・データの再スケーリングを行います。Rectangle2DgetBounds2D(BufferedImage src)再スケーリングされた転送先イメージのバウンディング・ボックスを返します。Rectangle2DgetBounds2D(Raster src)再スケーリングされた転送先Rasterのバウンディング・ボックスを返します。intgetNumFactors()このRescaleOpのスケーリング係数とオフセットを返します。float[]getOffsets(float[] offsets)指定された配列のオフセットを返します。Point2DgetPoint2D(Point2D srcPt, Point2D dstPt)指定された転送元のポイントに対応する、転送先のポイントの位置を返します。RenderingHintsgetRenderingHints()この操作の描画ヒントを返します。float[]getScaleFactors(float[] scaleFactors)指定された配列のスケーリング係数を返します。
-
コンストラクタの詳細
-
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-srcのColorModelがIndexColorModelである場合、またはこのRescaleOpのスケーリング・ファクタおよびオフセットの数がクラス・コメントに記載された要件を満たさない場合、またはソース・イメージと宛先イメージのサイズが異なる場合。
-
filter
public final WritableRaster filter(Raster src, WritableRaster dst)転送元Rasterのピクセル・データの再スケーリングを行います。 転送先Rasterがnullの場合、新しいRasterが生成されます。 転送元と転送先のバンドの数は一致しなければいけません。 この要件を満たさない場合はIllegalArgumentExceptionがスローされます。 このオブジェクトのスケーリング係数およびオフセットの数は、上記のクラス・コメントの要件を満たさなければいけません。 この要件を満たさない場合はIllegalArgumentExceptionがスローされます。- 定義:
filter、インタフェース:RasterOp- パラメータ:
src- フィルタ処理されるRaster。dst- フィルタ処理対象の転送先またはnull- 戻り値:
- フィルタ処理された
WritableRaster。 - 例外:
IllegalArgumentException-srcとdstに同じ数のバンドがない場合、またはこの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
指定された転送元のポイントに対応する、転送先のポイントの位置を返します。 dstPtがnullでない場合は、戻り値の格納先として使用されます。 幾何学的な操作ではないため、srcPtはdstPtと等しくなります。- 定義:
getPoint2D、インタフェース:BufferedImageOp- 定義:
getPoint2D、インタフェース:RasterOp- パラメータ:
srcPt- 転送元イメージのポイントdstPt- 転送先ポイント、またはnull- 戻り値:
- 転送先ポイントの位置
-
getRenderingHints
public final RenderingHints getRenderingHints()この操作の描画ヒントを返します。- 定義:
getRenderingHints、インタフェース:BufferedImageOp- 定義:
getRenderingHints、インタフェース:RasterOp- 戻り値:
- この
RescaleOpの描画ヒント。
-