モジュール 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オブジェクトが指定された場合、色変換が必要なときに、カラー描画ヒントおよびディザリング・ヒントを使用できます。

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

関連項目: