Module java.desktop
Package java.awt.image

Interface ImageConsumer

所有已知的实现类:
AreaAveragingScaleFilter, BufferedImageFilter, CropImageFilter, GrayFilter, ImageFilter, PixelGrabber, ReplicateScaleFilter, RGBImageFilter

public interface ImageConsumer
通过ImageProducer接口表达对图像数据感兴趣的对象的接口。当将消费者添加到图像生产者时,生产者使用此接口中定义的方法调用传递有关图像的所有数据。
参见:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    像素将一次传递完整的扫描线的倍数。
    static final int
    图像创建过程被故意中止。
    static final int
    在生成图像时遇到错误。
    static final int
    像素将以随机顺序传递。
    static final int
    图像包含单个静态图像。
    static final int
    图像的一个帧已完成,但还有更多帧要传递。
    static final int
    像素将在单次传递中传递。
    static final int
    图像已完成,没有更多像素或帧要传递。
    static final int
    像素将以自上而下、从左到右的顺序传递。
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    imageComplete(int status)
    当ImageProducer完成传递源图像包含的所有像素,或者完成多帧动画的单个帧,或者发生加载或生成图像时的错误时,将调用imageComplete方法。
    void
    设置用于使用setPixels方法调用报告的大多数像素的ColorModel对象。
    void
    setDimensions(int width, int height)
    使用setDimensions方法调用报告源图像的尺寸。
    void
    setHints(int hintflags)
    设置ImageConsumer用于处理ImageProducer传递的像素的提示。
    void
    setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize)
    使用一次或多次调用此方法传递图像的像素。
    void
    setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, int scansize)
    使用一次或多次调用setPixels方法传递图像的像素。
    void
    setProperties(Hashtable<?,?> props)
    设置与此图像关联的属性的可扩展列表。
  • Field Details

    • RANDOMPIXELORDER

      static final int RANDOMPIXELORDER
      像素将以随机顺序传递。这告诉ImageConsumer不要使用依赖像素传递顺序的任何优化,这应该是在没有调用setHints方法的情况下的默认假设。
      参见:
    • TOPDOWNLEFTRIGHT

      static final int TOPDOWNLEFTRIGHT
      像素将以自上而下、从左到右的顺序传递。
      参见:
    • COMPLETESCANLINES

      static final int COMPLETESCANLINES
      像素将一次传递完整的扫描线的倍数。
      参见:
    • SINGLEPASS

      static final int SINGLEPASS
      像素将在单次传递中传递。每个像素将仅在任何setPixels方法的一次调用中出现。不符合此标准的图像格式的示例是渐进式JPEG图像,它定义了多次传递像素,每次传递比上一次更精细。
      参见:
    • SINGLEFRAME

      static final int SINGLEFRAME
      图像包含单个静态图像。像素将在调用setPixels方法定义像素后,将使用STATICIMAGEDONE标志调用imageComplete方法,之后不会再传递图像数据。不符合这些标准的图像类型的示例是视频源的输出,或用户操作的3D渲染的表示。这些类型图像中每帧的结束将通过使用SINGLEFRAMEDONE标志调用imageComplete来指示。
      参见:
    • IMAGEERROR

      static final int IMAGEERROR
      在生成图像时遇到错误。
      参见:
    • SINGLEFRAMEDONE

      static final int SINGLEFRAMEDONE
      图像的一个帧已完成,但还有更多帧要传递。
      参见:
    • STATICIMAGEDONE

      static final int STATICIMAGEDONE
      图像已完成,没有更多像素或帧要传递。
      参见:
    • IMAGEABORTED

      static final int IMAGEABORTED
      图像创建过程被故意中止。
      参见:
  • Method Details

    • setDimensions

      void setDimensions(int width, int height)
      使用setDimensions方法调用报告源图像的尺寸。
      参数:
      width - 源图像的宽度
      height - 源图像的高度
    • setProperties

      void setProperties(Hashtable<?,?> props)
      设置与此图像关联的属性的可扩展列表。
      参数:
      props - 要与此图像关联的属性列表
    • setColorModel

      void setColorModel(ColorModel model)
      设置用于使用setPixels方法调用报告的大多数像素的ColorModel对象。请注意,使用setPixels传递的每组像素都包含自己的ColorModel对象,因此不应假定该模型将是传递像素值时使用的唯一模型。可能看到多个ColorModel对象的一个显著案例是过滤图像,对于它过滤的每组像素,过滤器确定是否可以无需更改使用原始ColorModel发送像素,还是应该使用更适合过滤过程的ColorModel修改(过滤)并传递像素。
      参数:
      model - 指定的ColorModel
      参见:
    • setHints

      void setHints(int hintflags)
      设置ImageConsumer用于处理ImageProducer传递的像素的提示。ImageProducer可以以任何顺序传递像素,但如果ImageConsumer事先了解有关像素将如何传递的一些信息,它可能能够更有效地或更高质量地将像素缩放或转换为目标ColorModel。应在任何调用setPixels方法之前调用setHints方法,其中包含有关像素将如何传递的提示位掩码。如果ImageProducer不遵循指示的提示准则,则结果是未定义的。
      参数:
      hintflags - ImageConsumer用于处理像素的一组提示
    • setPixels

      void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize)
      使用一次或多次调用此方法传递图像的像素。每次调用都指定包含在像素数组中的源像素矩形的位置和大小。应使用指定的ColorModel对象将像素转换为其对应的颜色和alpha分量。像素(m,n)存储在像素数组中的索引(n * scansize + m + off)处。使用此方法传递的像素都存储为字节。
      参数:
      x - 要设置像素区域的左上角的X坐标
      y - 要设置像素区域的左上角的Y坐标
      w - 像素区域的宽度
      h - 像素区域的高度
      model - 指定的ColorModel
      pixels - 像素数组
      off - 像素数组中的偏移量
      scansize - 像素数组中从一行像素到下一行的距离
      参见:
    • setPixels

      void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, int scansize)
      使用一次或多次调用setPixels方法传递图像的像素。每次调用都指定包含在像素数组中的源像素矩形的位置和大小。应使用指定的ColorModel对象将像素转换为其对应的颜色和alpha分量。像素(m,n)存储在像素数组中的索引(n * scansize + m + off)处。使用此方法传递的像素都存储为整数。
      参数:
      x - 要设置像素区域左上角的X坐标
      y - 要设置像素区域左上角的Y坐标
      w - 像素区域的宽度
      h - 像素区域的高度
      model - 指定的ColorModel
      pixels - 像素数组
      off - 在像素数组中的偏移量
      scansize - 像素数组中从一行像素到下一行的距离
      参见:
    • imageComplete

      void imageComplete(int status)
      当ImageProducer完成传递源图像包含的所有像素,或者完成多帧动画的单个帧,或者发生加载或生成图像时的错误时,将调用imageComplete方法。此时,ImageConsumer应该从ImageProducer注册的消费者列表中移除自身,除非它对连续帧感兴趣。
      参数:
      status - 图像加载的状态
      参见: