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
}
}
对于光栅,重新缩放操作在频带上。 缩放常数集合的数量可以是一个,在这种情况下,相同的常量应用于所有频带,或者它必须等于源光栅频带的数量。
对于BufferedImages,重新调整颜色和alpha组件。 缩放常数集合的数量可以是一个,在这种情况下,相同的常量应用于所有颜色(但不是alpha)组件。 否则,缩放常量集合的数量可以等于源颜色分量的数量,在这种情况下,不执行alpha分量(如果存在)的重新缩放。 如果这两种情况都不适用,缩放常数集合的数量必须等于源颜色分量加上alpha分量的数量,在这种情况下,所有颜色和alpha分量都将重新缩放。
具有预乘法α数据的BufferedImage源以与非预乘图像相同的方式被处理以用于重新缩放。 也就是说,对于BufferedImage源的原始数据,每个频段都进行重新缩放,而不考虑数据是否被预乘。 如果目标ColorModel需要颜色转换,则此步骤将考虑源和目的地的预乘法状态。
具有IndexColorModel的图像无法重新缩放。
如果在构造函数中指定了RenderingHints对象,则在需要颜色转换时,可以使用颜色渲染提示和抖动提示。
请注意,就地操作是允许的(即源和目标可以是相同的对象)。
Constructor and Description |
---|
RescaleOp(float[] scaleFactors, float[] offsets, RenderingHints hints)
构建一个具有所需比例因子和偏移量的新RescaleOp。
|
RescaleOp(float scaleFactor, float offset, RenderingHints hints)
构造一个具有所需比例因子和偏移量的新RescaleOp。
|
Modifier and Type | Method and Description |
---|---|
BufferedImage |
createCompatibleDestImage(BufferedImage src, ColorModel destCM)
创建带有正确大小和频带数的归零目的地图像。
|
WritableRaster |
createCompatibleDestRaster(Raster src)
创建一个零目的地
Raster 具有正确的大小和数量的频带,给定这个来源。
|
BufferedImage |
filter(BufferedImage src, BufferedImage dst)
重新调整源BufferedImage。
|
WritableRaster |
filter(Raster src, WritableRaster dst)
重新调整源光栅中的像素数据。
|
Rectangle2D |
getBounds2D(BufferedImage src)
返回重新缩放的目标图像的边框。
|
Rectangle2D |
getBounds2D(Raster src)
返回重新缩放的目标栅格的边框。
|
int |
getNumFactors()
返回此RescaleOp中使用的缩放因子和偏移量的数量。
|
float[] |
getOffsets(float[] offsets)
返回给定数组中的偏移量。
|
Point2D |
getPoint2D(Point2D srcPt, Point2D dstPt)
返回源中给定点的目标点的位置。
|
RenderingHints |
getRenderingHints()
返回此操作的渲染提示。
|
float[] |
getScaleFactors(float[] scaleFactors)
返回给定数组中的比例因子。
|
public RescaleOp(float[] scaleFactors, float[] offsets, RenderingHints hints)
scaleFactors
- 指定的比例因子
offsets
- 指定的偏移量
hints
- 指定的
RenderingHints
或
null
public RescaleOp(float scaleFactor, float offset, RenderingHints hints)
scaleFactor
- 指定的比例因子
offset
- 指定的偏移量
hints
- 指定的
RenderingHints
或
null
public final float[] getScaleFactors(float[] scaleFactors)
scaleFactors
- 包含这个
RescaleOp
的比例因子的
RescaleOp
RescaleOp
。
public final float[] getOffsets(float[] offsets)
offsets
- 该数组包含这个
RescaleOp
的偏移量
RescaleOp
的偏移量。
public final int getNumFactors()
RescaleOp
偏移量。
public final BufferedImage filter(BufferedImage src, BufferedImage dst)
filter
在接口
BufferedImageOp
src
- 要过滤的
BufferedImage
dst
- 过滤操作的目的地或
null
BufferedImage
。
IllegalArgumentException
- 如果
ColorModel
的
src
是
IndexColorModel
,或者如果此
RescaleOp
中的缩放因子和偏移量不符合类注释中规定的要求。
public final WritableRaster filter(Raster src, WritableRaster dst)
filter
在接口
RasterOp
src
- 要过滤的
Raster
dst
- 过滤操作的目的地或
null
WritableRaster
。
IllegalArgumentException
- 如果
src
和
dst
没有相同数量的频带,或者如果此
RescaleOp
中的缩放因子和偏移量不符合类注释中规定的要求。
public final Rectangle2D getBounds2D(BufferedImage src)
getBounds2D
在界面
BufferedImageOp
src
- 要过滤的
BufferedImage
Rectangle2D
代表目的地图像的边界框。
public final Rectangle2D getBounds2D(Raster src)
getBounds2D
在接口
RasterOp
src
- 重新缩放的目的地
Raster
Raster
。
public BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel destCM)
createCompatibleDestImage
在界面
BufferedImageOp
src
- 过滤器操作的源镜像。
destCM
- 目的地的ColorModel。
如果为null,将使用源的ColorModel。
public WritableRaster createCompatibleDestRaster(Raster src)
Raster
具有正确的大小和频带数,给定此源。
createCompatibleDestRaster
在接口
RasterOp
src
- 来源
Raster
Raster
。
public final Point2D getPoint2D(Point2D srcPt, Point2D dstPt)
getPoint2D
在接口
BufferedImageOp
getPoint2D
在接口
RasterOp
srcPt
- 源图像中的一点
dstPt
- 目的地点或
null
public final RenderingHints getRenderingHints()
getRenderingHints
在界面
BufferedImageOp
getRenderingHints
在接口
RasterOp
RescaleOp
。