- 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。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 BufferedImagecreateCompatibleDestImage(BufferedImage src, ColorModel destCM)创建具有正确大小和波段数的归零目标图像。WritableRastercreateCompatibleDestRaster(Raster src)在给定此源的情况下,创建具有正确大小和波段数的归零目标Raster。BufferedImagefilter(BufferedImage src, BufferedImage dst)重新调整源BufferedImage。WritableRasterfilter(Raster src, WritableRaster dst)重新调整源Raster中的像素数据。Rectangle2DgetBounds2D(BufferedImage src)返回重新缩放的目标图像的边界框。Rectangle2DgetBounds2D(Raster src)返回重新缩放的目标Raster的边界框。intgetNumFactors()返回此RescaleOp中使用的缩放因子和偏移的数量。float[]getOffsets(float[] offsets)返回给定数组中的偏移量。Point2DgetPoint2D(Point2D srcPt, Point2D dstPt)返回给定源中某个点的目标点的位置。RenderingHintsgetRenderingHints()返回此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的渲染提示。
-
-