- 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 } }
对于Rasters,重新缩放对频段进行操作。 缩放常数组的数量可以是1,在这种情况下,相同的常数应用于所有频带,或者它必须等于源栅格频带的数量。
对于BufferedImages,重新缩放对颜色和alpha分量进行操作。 缩放常数组的数量可以是1,在这种情况下,相同的常数应用于所有颜色(但不是α)组件。 否则,缩放常数组的数量可以等于源颜色分量的数量,在这种情况下,不执行α分量(如果存在)的重新缩放。 如果这些情况都不适用,则缩放常量集的数量必须等于源颜色分量加上alpha分量的数量,在这种情况下,所有颜色和alpha分量都会重新缩放。
具有预乘alpha数据的BufferedImage源以与非预乘图像相同的方式处理以进行重新缩放。 也就是说,在BufferedImage源的原始数据上按带执行重新缩放,而不考虑数据是否被预乘。 如果目标ColorModel需要进行颜色转换,则此步骤将考虑源和目标的预乘状态。
带有IndexColorModel的图像无法重新缩放。
如果在构造函数中指定了RenderingHints对象,则在需要颜色转换时可以使用颜色呈现提示和抖动提示。
请注意,允许就地操作(即源和目标可以是同一个对象)。
-
-
构造方法摘要
构造方法 构造器 描述 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()
返回此op的呈现提示。float[]
getScaleFactors(float[] scaleFactors)
返回给定数组中的比例因子。
-
-
-
构造方法详细信息
-
RescaleOp
public RescaleOp(float[] scaleFactors, float[] offsets, RenderingHints hints)
构造具有所需比例因子和偏移的新RescaleOp。 scaleFactor和offset数组的长度必须满足上面类注释中规定的限制。 RenderingHints参数可以为null。- 参数
-
scaleFactors
- 指定的比例因子 -
offsets
- 指定的偏移量 -
hints
- 指定的RenderingHints
或null
-
RescaleOp
public RescaleOp(float scaleFactor, float offset, RenderingHints hints)
构造一个具有所需比例因子和偏移量的新RescaleOp。 scaleFactor和offset将应用于源Raster中的所有band以及BufferedImage中的所有颜色(但不是alpha)组件。 RenderingHints参数可以为null。- 参数
-
scaleFactor
- 指定的比例因子 -
offset
- 指定的偏移量 -
hints
- 指定的RenderingHints
或null
-
-
方法详细信息
-
getScaleFactors
public final float[] getScaleFactors(float[] scaleFactors)
返回给定数组中的比例因子。 为方便起见,还返回了数组。 如果scaleFactors为null,则将分配一个新数组。- 参数
-
scaleFactors
- 包含此RescaleOp
的比例因子的RescaleOp
- 结果
-
这个
RescaleOp
的比例因子。
-
getOffsets
public final float[] getOffsets(float[] offsets)
返回给定数组中的偏移量。 为方便起见,还返回了数组。 如果偏移量为null,则将分配新数组。- 参数
-
offsets
- 包含此RescaleOp
的偏移量的RescaleOp
- 结果
-
这个
RescaleOp
的补偿。
-
getNumFactors
public final int getNumFactors()
返回此RescaleOp中使用的缩放因子和偏移的数量。- 结果
-
此
RescaleOp
的缩放因子和偏移量的RescaleOp
。
-
filter
public final BufferedImage filter(BufferedImage src, BufferedImage dst)
重新调整源BufferedImage。 如果源图像中的颜色模型与目标图像中的颜色模型不同,则将在目标中转换像素。 如果目标图像为null,则将使用源ColorModel创建BufferedImage。 如果此对象中的缩放因子/偏移的数量不满足上面的类注释中所述的限制,或者源图像具有IndexColorModel,则可能抛出IllegalArgumentException。- Specified by:
-
filter
在接口BufferedImageOp
- 参数
-
src
- 要过滤的BufferedImage
-
dst
- 过滤操作的目标或null
- 结果
-
过滤后的
BufferedImage
。 - 异常
-
IllegalArgumentException
- 如果ColorModel
的src
是IndexColorModel
,或者此RescaleOp
的缩放因子和偏移量不符合类注释中所述的要求,或者源和目标映像的大小不同。
-
filter
public final WritableRaster filter(Raster src, WritableRaster dst)
重新调整源Raster中的像素数据。 如果目标Raster为null,则将创建一个新的Raster。 源和目标必须具有相同数量的波段。 否则,抛出IllegalArgumentException。 请注意,此对象中缩放因子/偏移的数量必须满足上述类注释中规定的限制。 否则,抛出IllegalArgumentException。- Specified by:
-
filter
在接口RasterOp
- 参数
-
src
- 要过滤的Raster
-
dst
- 过滤操作的目标或null
- 结果
-
过滤后的
WritableRaster
。 - 异常
-
IllegalArgumentException
- 如果src
和dst
没有相同数量的频段,或者此RescaleOp
的缩放因子和偏移数不符合类注释中所述的要求,或者源和目标栅格的大小不同。
-
getBounds2D
public final Rectangle2D getBounds2D(BufferedImage src)
返回重新缩放的目标图像的边界框。 由于这不是几何操作,因此边界框不会改变。- Specified by:
-
getBounds2D
在接口BufferedImageOp
- 参数
-
src
- 要过滤的BufferedImage
- 结果
-
Rectangle2D
表示目标图像的边界框。
-
getBounds2D
public final Rectangle2D getBounds2D(Raster src)
返回重新缩放的目标Raster的边界框。 由于这不是几何操作,因此边界框不会改变。- Specified by:
-
getBounds2D
在接口RasterOp
- 参数
-
src
- 重新缩放的目的地Raster
- 结果
-
指定的边界
Raster
。
-
createCompatibleDestImage
public BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel destCM)
创建具有正确大小和波段数的归零目标图像。- Specified by:
-
createCompatibleDestImage
在接口BufferedImageOp
- 参数
-
src
- 过滤器操作的源图像。 -
destCM
- 目的地的ColorModel。 如果为null,则将使用源的ColorModel。 - 结果
- 归零目标图像。
-
createCompatibleDestRaster
public WritableRaster createCompatibleDestRaster(Raster src)
给定此源,创建具有正确大小和波段数的归零目标Raster
。- Specified by:
-
createCompatibleDestRaster
在接口RasterOp
- 参数
-
src
- 源Raster
- 结果
-
归零目的地
Raster
。
-
getPoint2D
public final Point2D getPoint2D(Point2D srcPt, Point2D dstPt)
返回给定源中某个点的目标点的位置。 如果dstPt为非null,则它将用于保存返回值。 由于这不是几何操作,因此srcPt将等于dstPt。- Specified by:
-
getPoint2D
在接口BufferedImageOp
- Specified by:
-
getPoint2D
在接口RasterOp
- 参数
-
srcPt
- 源图像中的一个点 -
dstPt
- 目的地点或null
- 结果
- 目的地点的位置。
-
getRenderingHints
public final RenderingHints getRenderingHints()
返回此op的呈现提示。- Specified by:
-
getRenderingHints
在接口BufferedImageOp
- Specified by:
-
getRenderingHints
在接口RasterOp
- 结果
-
这个
RescaleOp
的渲染提示。
-
-