java.awt.image

接口
异常
java.lang.Object
  继承者 java.awt.image.BandCombineOp
所有已实现的接口:
RasterOp

public class BandCombineOp
     
extends Object
implements RasterOp

此类使用一个指定矩阵对 Raster 中的 band 进行任意线性组合。

矩阵的宽度必须等于源 Raster 中的 band 数(可以加一)。如果矩阵中的列数比 band 数多 1,则在 band 样本向量的结尾处存在一个隐含的 1,它表示一个像素。矩阵的高度必须等于目标图像中的 band 数。

例如,对于一个 band 数为 3 的 Raster,为了反转 Raster 的第二个 band,可以对每个像素应用以下变换。

   [ 1.0   0.0   0.0    0.0  ]     [ b1 ]    
   [ 0.0  -1.0   0.0  255.0  ]  x  [ b2 ]
   [ 0.0   0.0   1.0    0.0  ]     [ b3 ]
                                   [ 1 ]
 

注意,源图像和目标图像可以是同一个对象。


构造方法摘要
BandCombineOp(float[][] matrix, RenderingHints hints)
          构造一个具有指定矩阵的 BandCombineOp
 
方法摘要
 WritableRaster createCompatibleDestRaster(Raster src)
          创建一个经过检查的目标 Raster,它具有正确大小和 band 数。
 WritableRaster filter(Raster src, WritableRaster dst)
          使用构造方法中指定的矩阵变换该 Raster
 Rectangle2D getBounds2D(Raster src)
          返回变换后目标图像的边界框。
 float[][] getMatrix()
          返回线性组合矩阵的一个副本。
 Point2D getPoint2D(Point2D srcPt, Point2D dstPt)
          返回与源 Raster 中给定点对应的目标点的位置。
 RenderingHints getRenderingHints()
          返回针对此操作呈现的提示。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

BandCombineOp

public BandCombineOp(float[][] matrix,
                     RenderingHints hints)
构造一个具有指定矩阵的 BandCombineOp。矩阵的宽度必须等于源 Raster 中的 band 数(可以加一)。如果矩阵中的列数比 band 数多 1,则在 band 样本向量的结尾处存在一个隐含的 1,它表示一个像素。矩阵的高度必须等于目标图像中的 band 数。

第一个下标是行索引,第二个下标是列索引。此操作没有使用当前定义的呈现提示;RenderingHints 参数可以为 null。

参数:
matrix - 进行 band 组合操作要使用的矩阵。
hints - 用于此操作的 RenderingHints 对象。当前没有使用提示,因此它可以为 null。
方法详细信息

getMatrix

public final float[][] getMatrix()
返回线性组合矩阵的一个副本。

返回:
与此 band 组合操作关联的矩阵。

filter

public WritableRaster filter(Raster src,
                             WritableRaster dst)
使用构造方法中指定的矩阵变换该 Raster。如果源图像或目标图像中的 band 数与矩阵不一致,则抛出 IllegalArgumentException。有关更多详细信息,请参阅类注释。

如果目标图像为 null,则将创建它,使 band 数等于矩阵中的行数。即使该操作引起数据溢出,也不会抛出异常。

指定者:
接口 RasterOp 中的 filter
参数:
src - 要过滤的 Raster
dst - 要在其中存储过滤操作结果的 Raster
返回:
过滤后的 Raster
抛出:
IllegalArgumentException - 如果源图像或目标图像中的 band 数与矩阵不一致。

getBounds2D

public final Rectangle2D getBounds2D(Raster src)
返回变换后目标图像的边界框。由于这不是一个几何操作,因此源图像和目标图像的边界框相同。如果源图像中的 band 数与矩阵不一致,则抛出 IllegalArgumentException。有关更多详细信息,请参阅类注释。

指定者:
接口 RasterOp 中的 getBounds2D
参数:
src - 要过滤的 Raster
返回:
表示目标图像边界框的 Rectangle2D
抛出:
IllegalArgumentException - 如果源图像中的 band 数与矩阵不一致。

createCompatibleDestRaster

public WritableRaster createCompatibleDestRaster(Raster src)
创建一个经过检查的目标 Raster,它具有正确大小和 band 数。如果源图像中的 band 数与矩阵不一致,则抛出 IllegalArgumentException。有关更多详细信息,请参阅类注释。

指定者:
接口 RasterOp 中的 createCompatibleDestRaster
参数:
src - 要过滤的 Raster
返回:
经过检查的目标 Raster

getPoint2D

public final Point2D getPoint2D(Point2D srcPt,
                                Point2D dstPt)
返回与源 Raster 中给定点对应的目标点的位置。如果指定了 dstPt,则使用它来保存返回值。由于这不是一个几何操作,因此返回的点与指定的 srcPt 相同。

指定者:
接口 RasterOp 中的 getPoint2D
参数:
srcPt - 表示源 Raster 中点的 Point2D
dstPt - 用于存储结果的 Point2D
返回:
与源图像中指定点对应的目标图像中的 Point2D

getRenderingHints

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

指定者:
接口 RasterOp 中的 getRenderingHints
返回:
与此操作关联的 RenderingHints 对象。如果没有设置提示,则返回 null。