Module java.desktop
Package java.awt.image

Class LookupOp

java.lang.Object
java.awt.image.LookupOp
所有已实现的接口:
BufferedImageOp, RasterOp

public class LookupOp extends Object implements BufferedImageOp, RasterOp
该类实现了从源到目标的查找操作。LookupTable对象可以包含单个数组或多个数组,受以下限制约束。

对于栅格图像,查找操作在波段上进行。查找数组的数量可以是一个,这种情况下相同的数组应用于所有波段,或者必须等于源栅格波段的数量。

对于缓冲图像,查找操作在颜色和alpha分量上进行。查找数组的数量可以是一个,这种情况下相同的数组应用于所有颜色(但不包括alpha)分量。否则,查找数组的数量可以等于源颜色分量的数量,这种情况下不会对alpha分量(如果存在)进行查找。如果以上两种情况都不适用,则查找数组的数量必须等于源颜色分量加上alpha分量的数量,这种情况下将对所有颜色和alpha分量进行查找。这允许对多波段缓冲图像进行非均匀重新缩放。

具有预乘alpha数据的缓冲图像在查找方面与非预乘图像相同对待。也就是说,查找是在缓冲图像源的原始数据上按波段进行的,而不考虑数据是否预乘。如果需要颜色转换到目标ColorModel,则将考虑源和目标的预乘状态。

具有IndexColorModel的图像无法使用。

如果在构造函数中指定了RenderingHints对象,则在需要颜色转换时可能会使用颜色渲染提示和抖动提示。

该类允许源与目标相同。

参见:
  • Constructor Details

    • LookupOp

      public LookupOp(LookupTable lookup, RenderingHints hints)
      构造一个给定查找表和RenderingHints对象的LookupOp对象,可能为null。
      参数:
      lookup - 指定的LookupTable
      hints - 指定的RenderingHints,或null
  • Method Details

    • getTable

      public final LookupTable getTable()
      返回LookupTable。
      返回:
      此LookupOp的LookupTable。
    • filter

      public final BufferedImage filter(BufferedImage src, BufferedImage dst)
      在BufferedImage上执行查找操作。如果源图像中的颜色模型与目标图像中的颜色模型不同,则像素将在目标中转换。如果目标图像为null,则将创建一个带有适当ColorModel的BufferedImage。如果LookupTable中的数组数量不符合上述类注释中的限制,或者源图像具有IndexColorModel,则可能会抛出IllegalArgumentException。
      指定者:
      filter 在接口 BufferedImageOp
      参数:
      src - 要过滤的BufferedImage
      dst - 用于存储过滤操作结果的BufferedImage
      返回:
      过滤后的BufferedImage。
      抛出:
      IllegalArgumentException - 如果LookupTable中的数组数量不符合类注释中描述的限制,或者源图像具有IndexColorModel。
    • filter

      public final WritableRaster filter(Raster src, WritableRaster dst)
      在Raster上执行查找操作。如果目标Raster为null,则将创建一个新的Raster。如果源Raster和目标Raster的波段数不相同,或者LookupTable中的数组数量不符合上述类注释中的限制,则可能会抛出IllegalArgumentException。
      指定者:
      filter 在接口 RasterOp
      参数:
      src - 要过滤的源Raster
      dst - 用于过滤src的目标WritableRaster
      返回:
      过滤后的WritableRaster。
      抛出:
      IllegalArgumentException - 如果源和目标栅格的波段数不相同,或者LookupTable中的数组数量不符合类注释中描述的限制。
    • getBounds2D

      public final Rectangle2D getBounds2D(BufferedImage src)
      返回过滤后的目标图像的边界框。由于这不是几何操作,边界框不会改变。
      指定者:
      getBounds2D 在接口 BufferedImageOp
      参数:
      src - 要过滤的BufferedImage
      返回:
      过滤定义图像的边界。
    • getBounds2D

      public final Rectangle2D getBounds2D(Raster src)
      返回过滤后的目标Raster的边界框。由于这不是几何操作,边界框不会改变。
      指定者:
      getBounds2D 在接口 RasterOp
      参数:
      src - 要过滤的Raster
      返回:
      过滤定义Raster的边界。
    • createCompatibleDestImage

      public BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel destCM)
      创建一个正确大小和波段数的零值目标图像。如果destCM为null,则将使用适当的ColorModel。
      指定者:
      createCompatibleDestImage 在接口 BufferedImageOp
      参数:
      src - 过滤操作的源图像。
      destCM - 目标的ColorModel,可以为null。
      返回:
      过滤后的目标BufferedImage。
    • createCompatibleDestRaster

      public WritableRaster createCompatibleDestRaster(Raster src)
      创建一个正确大小和波段数的零值目标Raster,给定此源。
      指定者:
      createCompatibleDestRaster 在接口 RasterOp
      参数:
      src - 要转换的Raster
      返回:
      零值目标Raster。
    • getPoint2D

      public final Point2D getPoint2D(Point2D srcPt, Point2D dstPt)
      给定源中的点,返回目标点的位置。如果dstPt不为null,则将用于保存返回值。由于这不是几何操作,srcPt将等于dstPt。
      指定者:
      getPoint2D 在接口 BufferedImageOp
      指定者:
      getPoint2D 在接口 RasterOp
      参数:
      srcPt - 表示源图像中的点的Point2D
      dstPt - 表示目标位置的Point2D
      返回:
      对应于源中指定点的目标Point2D。
    • getRenderingHints

      public final RenderingHints getRenderingHints()
      返回此操作的渲染提示。
      指定者:
      getRenderingHints 在接口 BufferedImageOp
      指定者:
      getRenderingHints 在接口 RasterOp
      返回:
      与此操作关联的RenderingHints对象。