java.lang.Object
java.awt.image.RescaleOp
- 所有已实现的接口:
-
BufferedImageOp
,RasterOp
该类通过将源图像中的数据逐像素重新缩放,将每个像素的样本值乘以比例因子,然后加上偏移量来执行。缩放后的样本值被剪切到目标图像中可表示的最小/最大值。
重新缩放操作的伪代码如下:
对于来自源对象的每个像素 { 对于像素的每个波段/分量 { dstElement = (srcElement*scaleFactor) + offset } }
对于光栅图像,重新缩放操作作用于波段。缩放常数集的数量可以是一个,此时相同的常数将应用于所有波段,或者必须等于源光栅波段的数量。
对于缓冲图像,重新缩放操作作用于颜色和alpha分量。缩放常数集的数量可以是一个,此时相同的常数将应用于所有颜色(但不包括alpha)分量。否则,缩放常数集的数量可以等于源颜色分量的数量,此时不会对alpha分量(如果存在)进行重新缩放。如果这两种情况都不适用,则缩放常数集的数量必须等于源颜色分量加上alpha分量的数量,此时所有颜色和alpha分量都将被重新缩放。
具有预乘alpha数据的缓冲图像在重新缩放方面与非预乘图像处理方式相同。也就是说,对于缓冲图像源的原始数据,将按波段进行重新缩放,而不考虑数据是否已预乘。如果需要颜色转换到目标ColorModel,则将考虑源和目标的预乘状态。
具有IndexColorModel的图像无法重新缩放。
如果在构造函数中指定了RenderingHints对象,则在需要颜色转换时可能会使用颜色渲染提示和抖动提示。
请注意,允许原地操作(即源和目标可以是同一对象)。
- 参见:
-
Constructor Summary
ConstructorDescriptionRescaleOp
(float[] scaleFactors, float[] offsets, RenderingHints hints) 构造具有所需比例因子和偏移量的新RescaleOp。RescaleOp
(float scaleFactor, float offset, RenderingHints hints) 构造具有所需比例因子和偏移量的新RescaleOp。 -
Method Summary
Modifier and TypeMethodDescriptioncreateCompatibleDestImage
(BufferedImage src, ColorModel destCM) 创建具有正确大小和波段数量的零目标图像。创建具有正确大小和波段数量的零目标Raster,给定此源。final BufferedImage
filter
(BufferedImage src, BufferedImage dst) 重新缩放源BufferedImage。final WritableRaster
filter
(Raster src, WritableRaster dst) 重新缩放源Raster中的像素数据。final Rectangle2D
getBounds2D
(BufferedImage src) 返回重新缩放后目标图像的边界框。final Rectangle2D
getBounds2D
(Raster src) 返回重新缩放后目标Raster的边界框。final int
返回此RescaleOp中使用的比例因子和偏移量的数量。final float[]
getOffsets
(float[] offsets) 返回给定数组中的偏移量。final Point2D
getPoint2D
(Point2D srcPt, Point2D dstPt) 返回给定源点的目标点的位置。final RenderingHints
返回此操作的渲染提示。final float[]
getScaleFactors
(float[] scaleFactors) 返回给定数组中的比例因子。
-
Constructor Details
-
RescaleOp
构造具有所需比例因子和偏移量的新RescaleOp。比例因子和偏移量数组的长度必须符合上述类注释中的限制。RenderingHints参数可以为null。- 参数:
-
scaleFactors
- 指定的比例因子 -
offsets
- 指定的偏移量 -
hints
- 指定的RenderingHints
,或null
-
RescaleOp
构造具有所需比例因子和偏移量的新RescaleOp。比例因子和偏移量将应用于源Raster中的所有波段以及BufferedImage中的所有颜色(但不包括alpha)分量。RenderingHints参数可以为null。- 参数:
-
scaleFactor
- 指定的比例因子 -
offset
- 指定的偏移量 -
hints
- 指定的RenderingHints
,或null
-
-
Method Details
-
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
重新缩放源BufferedImage。如果源图像中的颜色模型与目标图像中的颜色模型不同,则像素将在目标中转换。如果目标图像为null,则将使用源ColorModel创建一个BufferedImage。如果此对象中的缩放因子/偏移量的数量不符合上述类注释中的限制,或者源图像具有IndexColorModel,则可能会抛出IllegalArgumentException。- 指定者:
-
filter
在接口BufferedImageOp
中 - 参数:
-
src
- 要过滤的BufferedImage
-
dst
- 过滤操作的目标或null
- 返回:
-
过滤后的
BufferedImage
。 - 抛出:
-
IllegalArgumentException
- 如果src
的ColorModel
是IndexColorModel
,或者此RescaleOp
中的缩放因子和偏移量的数量不符合类注释中的要求,或者源图像和目标图像的大小不同。
-
filter
重新缩放源Raster中的像素数据。如果目标Raster为null,则将创建一个新的Raster。源和目标必须具有相同数量的波段。否则,将抛出IllegalArgumentException。请注意,此对象中的缩放因子/偏移量的数量必须符合上述类注释中的限制。否则,将抛出IllegalArgumentException。- 指定者:
-
filter
在接口RasterOp
中 - 参数:
-
src
- 要过滤的Raster
-
dst
- 过滤操作的目标或null
- 返回:
-
过滤后的
WritableRaster
。 - 抛出:
-
IllegalArgumentException
- 如果src
和dst
的波段数不同,或者此RescaleOp
中的缩放因子和偏移量的数量不符合类注释中的要求,或者源和目标光栅的大小不同。
-
getBounds2D
返回重新缩放后目标图像的边界框。由于这不是几何操作,边界框不会改变。- 指定者:
-
getBounds2D
在接口BufferedImageOp
中 - 参数:
-
src
- 要过滤的BufferedImage
- 返回:
-
表示目标图像边界框的
Rectangle2D
。
-
getBounds2D
返回重新缩放后目标Raster的边界框。由于这不是几何操作,边界框不会改变。- 指定者:
-
getBounds2D
在接口RasterOp
中 - 参数:
-
src
- 重新缩放的目标Raster
- 返回:
-
指定
Raster
的边界。
-
createCompatibleDestImage
创建具有正确大小和波段数量的零目标图像。- 指定者:
-
createCompatibleDestImage
在接口BufferedImageOp
中 - 参数:
-
src
- 过滤操作的源图像。 -
destCM
- 目标的ColorModel。如果为null,则将使用源的ColorModel。 - 返回:
- 零目标图像。
-
createCompatibleDestRaster
创建具有正确大小和波段数量的零目标Raster,给定此源。- 指定者:
-
createCompatibleDestRaster
在接口RasterOp
中 - 参数:
-
src
- 源Raster
- 返回:
-
零目标
Raster
。
-
getPoint2D
返回源中给定点的目标点位置。如果dstPt非空,则将用它来保存返回值。由于这不是一个几何操作,srcPt将等于dstPt。- 指定者:
-
getPoint2D
在接口BufferedImageOp
- 指定者:
-
getPoint2D
在接口RasterOp
- 参数:
-
srcPt
- 源图像中的一个点 -
dstPt
- 目标点或null
- 返回:
- 目标点的位置。
-
getRenderingHints
返回此操作的渲染提示。- 指定者:
-
getRenderingHints
在接口BufferedImageOp
- 指定者:
-
getRenderingHints
在接口RasterOp
- 返回:
-
RescaleOp
的渲染提示。
-