JavaTM 2 Platform
Std. Ed. v1.3

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 ソースの生のデータに対してバンド単位で再スケーリングが実行されます。色変換がデスティネーションの ColorModel で必要な場合、ソースとデスティネーションの両方の、あらかじめ乗算された状態がこのステップで考慮されます。

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

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

インプレースオペレーションが可能です。つまり、ソースとデスティネーションは同じオブジェクトでもかまいません。

関連項目:
RenderingHints.KEY_COLOR_RENDERING, RenderingHints.KEY_DITHERING

コンストラクタの概要
RescaleOp(float[] scaleFactors, float[] offsets, RenderingHints hints)
          指定されたスケーリング係数とオフセットを使って新しい RescaleOp を構築します。
RescaleOp(float scaleFactor, float offset, RenderingHints hints)
          指定されたスケーリング係数とオフセットを使って新しい RescaleOp を構築します。
 
メソッドの概要
 BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel destCM)
          ゼロ化されたデスティネーションイメージを、正しいサイズおよびバンド数で作成します。
 WritableRaster createCompatibleDestRaster(Raster src)
          指定されたソースで、正しいサイズおよびバンド数を持つゼロ化されたデスティネーション Raster を作成します。
 BufferedImage filter(BufferedImage src, BufferedImage dst)
          ソース BufferedImage を再スケーリングします。
 WritableRaster filter(Raster src, WritableRaster dst)
          ソース Raster のピクセルデータを再スケーリングします。
 Rectangle2D getBounds2D(BufferedImage src)
          再スケーリングされたデスティネーションイメージのバウンディングボックスを返します。
 Rectangle2D getBounds2D(Raster src)
          再スケーリングされたデスティネーション Raster のバウンディングボックスを返します。
 int getNumFactors()
          この RescaleOp で使用されているスケーリング係数およびオフセットの数を返します。
 float[] getOffsets(float[] offsets)
          指定された配列のオフセットを返します。
 Point2D getPoint2D(Point2D srcPt, Point2D dstPt)
          指定されたソース内のポイントに対応する、デスティネーションのポイントの位置を返します。
 RenderingHints getRenderingHints()
          このオペレーションの描画ヒントを返します。
 float[] getScaleFactors(float[] scaleFactors)
          指定された配列のスケーリング係数を返します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

RescaleOp

public RescaleOp(float[] scaleFactors,
                 float[] offsets,
                 RenderingHints hints)
指定されたスケーリング係数とオフセットを使って新しい RescaleOp を構築します。scaleFactor および offset 配列の長さは、上記のクラスコメントの制限に適合している必要があります。RenderingHints 引数は null でもかまいません。

RescaleOp

public RescaleOp(float scaleFactor,
                 float offset,
                 RenderingHints hints)
指定されたスケーリング係数とオフセットを使って新しい RescaleOp を構築します。scaleFactor および offset は、ソース Raster のすべてのバンドおよび BufferedImage のすべての色成分 (アルファ成分は除く) に適用されます。RenderingHints 引数は null でもかまいません。
メソッドの詳細

getScaleFactors

public final float[] getScaleFactors(float[] scaleFactors)
指定された配列のスケーリング係数を返します。便宜上、配列も返されます。scaleFactors が null の場合は、新しい配列が割り当てられます。

getOffsets

public final float[] getOffsets(float[] offsets)
指定された配列のオフセットを返します。便宜上、配列も返されます。offsets が null の場合は、新しい配列が割り当てられます。

getNumFactors

public final int getNumFactors()
この RescaleOp で使用されているスケーリング係数およびオフセットの数を返します。

filter

public final BufferedImage filter(BufferedImage src,
                                  BufferedImage dst)
ソース BufferedImage を再スケーリングします。ソースイメージのカラーモデルがデスティネーションイメージのカラーモデルと同じでない場合、ピクセルはデスティネーションで変換されます。デスティネーションイメージが null の場合、ソース ColorModel を使って BufferedImage が作成されます。このオブジェクトのスケーリング係数/オフセットの数が、上記のクラスコメントの制限に適合しない場合や、ソースイメージが IndexColorModel を持つ場合は、IllegalArgumentException がスローされることがあります。
定義:
インタフェース BufferedImageOp 内の filter

filter

public final WritableRaster filter(Raster src,
                                   WritableRaster dst)
ソース Raster のピクセルデータを再スケーリングします。デスティネーションの Raster が null の場合、新しい Raster が作成されます。ソースおよびデスティネーションのバンド数は同じでなければなりません。そうでない場合は、IllegalArgumentException がスローされます。このオブジェクトのスケーリング係数/オフセットの数は、上記のクラスコメントの制限に適合しなければなりません。適合しない場合は IllegalArgumentException がスローされます。
定義:
インタフェース RasterOp 内の filter

getBounds2D

public final Rectangle2D getBounds2D(BufferedImage src)
再スケーリングされたデスティネーションイメージのバウンディングボックスを返します。幾何学的な操作ではないため、バウンディングボックスは変更されません。
定義:
インタフェース BufferedImageOp 内の getBounds2D

getBounds2D

public final Rectangle2D getBounds2D(Raster src)
再スケーリングされたデスティネーション Raster のバウンディングボックスを返します。幾何学的な操作ではないため、バウンディングボックスは変更されません。
定義:
インタフェース RasterOp 内の getBounds2D

createCompatibleDestImage

public BufferedImage createCompatibleDestImage(BufferedImage src,
                                               ColorModel destCM)
ゼロ化されたデスティネーションイメージを、正しいサイズおよびバンド数で作成します。
定義:
インタフェース BufferedImageOp 内の createCompatibleDestImage
パラメータ:
src - フィルタオペレーションのソースイメージ
destCM - デスティネーションの ColorModel。null の場合は、ソースの ColorModel が使用される

createCompatibleDestRaster

public WritableRaster createCompatibleDestRaster(Raster src)
指定されたソースで、正しいサイズおよびバンド数を持つゼロ化されたデスティネーション Raster を作成します。
定義:
インタフェース RasterOp 内の createCompatibleDestRaster

getPoint2D

public final Point2D getPoint2D(Point2D srcPt,
                                Point2D dstPt)
指定されたソース内のポイントに対応する、デスティネーションのポイントの位置を返します。dstPt が null でない場合は、戻り値の格納先として dstPt が使用されます。幾何学的な操作ではないため、srcPt は dstPt と等しくなります。
定義:
インタフェース BufferedImageOp 内の getPoint2D

getRenderingHints

public final RenderingHints getRenderingHints()
このオペレーションの描画ヒントを返します。
定義:
インタフェース BufferedImageOp 内の getRenderingHints

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.