JavaTM 2 Platform
Standard Ed. 6

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,重縮放在 band 上運行。縮放常數集合的數量可能為 1,在這種情況下,對所有 band 都應用相同的常數,或者該數量必須等於 Source Raster band 的數量。

對於 BufferedImage,重縮放在顏色和 alpha 份量上進行。縮放常數集合的數量可能為 1,在這種情況下,對所有顏色(但不包括 alpha)份量應用相同的常數。否則,縮放常數集合的數量必須等於 Source 顏色份量,在這種情況下,不對 alpha 份量(如果存在)執行重縮放。如果這兩種情況都不適用,則縮放常數集合的數量必須等於 Source 顏色份量加上 alpha 份量的數量,在這種情況下,要對所有顏色和 alpha 份量都執行重縮放。

無論所 band 資料是否自左乘 alpha,對於 BufferedImage 源執行重縮放的方式都是相同的。也就是說,無論資料是否自左乘 alpha,在 BufferedImage 源的原始資料的每個 band 上都執行重縮放。如果需要將顏色轉換到目標 ColorModel,則該步驟要考慮源和目標的自左乘狀態。

不能重縮放具有 IndexColorModel 的圖像。

如果在建構子中定義了 RenderingHints 物件,當需要顏色轉換時,可以使用顏色呈現提示和抖動提示。

注意,允許進行 in-place 操作(也就是說,源和目標可以是相同的物件)。

另請參見:
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)
          創建一個具有正確大小和 band 數的經檢查的目標圖像。
 WritableRaster createCompatibleDestRaster(Raster src)
          在給出源的情況下,創建一個具有正確大小和 band 數的經檢查的目標 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。

參數:
scaleFactors - 指定的縮放因子
offsets - 指定的偏移量
hints - 指定的 RenderingHintsnull

RescaleOp

public RescaleOp(float scaleFactor,
                 float offset,
                 RenderingHints hints)
建構一個具有所希望的縮放因子和偏移量的新 RescaleOp。scaleFactor 和 offset 在源 Raster 中將應用於所有 band,在 BufferedImage 中將應用於所有顏色(但不包括 alpha)份量。RenderingHints 參數可以為 null。

參數:
scaleFactor - 指定的縮放因子
offset - 指定的偏移量
hints - 指定的 RenderingHintsnull
方法詳細資訊

getScaleFactors

public final float[] getScaleFactors(float[] scaleFactors)
返回給定陣列中的縮放因子。為方便起見,也返回陣列。如果 scaleFactors 為 null,則分派一個新陣列。

參數:
scaleFactors - 套件含此 RescaleOp 的縮放因子的陣列
返回:
RescaleOp 的縮放因子。

getOffsets

public final float[] getOffsets(float[] offsets)
返回給定陣列中的偏移量。為方便起見,也返回陣列。如果 offset 為 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。

指定者:
介面 BufferedImageOp 中的 filter
參數:
src - 要過濾的 BufferedImage
dst - 過濾操作的目標或 null
返回:
過濾的 BufferedImage
拋出:
IllegalArgumentException - 如果 srcColorModel 是一個 IndexColorModel,或者此 RescaleOp 中縮放因子和偏移量的數量不符合上述類別註釋中規定的限制。

filter

public final WritableRaster filter(Raster src,
                                   WritableRaster dst)
對源 Raster 中的像素資料進行重縮放。如果目標 Raster 為 null,則創建一個新 Raster。源和目標必須具有相同的 band 數。否則拋出 IllegalArgumentException。注意,此物件中縮放因子/偏移量的數量必須滿足上述類別註釋中規定的限制。否則拋出 IllegalArgumentException。

指定者:
介面 RasterOp 中的 filter
參數:
src - 要過濾的 Raster
dst - 過濾操作的目標或 null
返回:
過濾的 WritableRaster
拋出:
IllegalArgumentException - 如果 srcdst 沒有相同的 band 數,或者此 RescaleOp 中縮放因子和偏移量的數量不符合上述類別註釋中規定的限制。

getBounds2D

public final Rectangle2D getBounds2D(BufferedImage src)
返回重縮放後的目標圖像的邊界框。因為這不是一個幾何操作,所以邊界框不會改變。

指定者:
介面 BufferedImageOp 中的 getBounds2D
參數:
src - 要過濾的 BufferedImage
返回:
表示目標圖像邊界框的 Rectangle2D

getBounds2D

public final Rectangle2D getBounds2D(Raster src)
返回重縮放後的目標 Raster 的邊界框。因為這不是一個幾何操作,所以邊界框不會改變。

指定者:
介面 RasterOp 中的 getBounds2D
參數:
src - 重縮放後的目標 Raster
返回:
指定 Raster 的邊界。

createCompatibleDestImage

public BufferedImage createCompatibleDestImage(BufferedImage src,
                                               ColorModel destCM)
創建一個具有正確大小和 band 數的經檢查的目標圖像。

指定者:
介面 BufferedImageOp 中的 createCompatibleDestImage
參數:
src - 過濾操作的源圖像。
destCM - 目標的 ColorModel。如果為 null,則使用源的 ColorModel。
返回:
經檢查的目標圖像。

createCompatibleDestRaster

public WritableRaster createCompatibleDestRaster(Raster src)
在給出源的情況下,創建一個具有正確大小和 band 數的經檢查的目標 Raster

指定者:
介面 RasterOp 中的 createCompatibleDestRaster
參數:
src - 源 Raster
返回:
經檢查的目標 Raster

getPoint2D

public final Point2D getPoint2D(Point2D srcPt,
                                Point2D dstPt)
給定源中的一個點,返回對應目標點的位置。如果 dstPt 為非 null,則使用它保存返回值。因為這不是一個幾何操作,所以 srcPt 將等於 dstPt。

指定者:
介面 BufferedImageOp 中的 getPoint2D
指定者:
介面 RasterOp 中的 getPoint2D
參數:
srcPt - 源圖像中的一個點
dstPt - 目標點或 null
返回:
目標點的位置。

getRenderingHints

public final RenderingHints getRenderingHints()
返回此操作的呈現提示。

指定者:
介面 BufferedImageOp 中的 getRenderingHints
指定者:
介面 RasterOp 中的 getRenderingHints
返回:
RescaleOp 的呈現提示。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only