Module java.desktop
Package java.awt.image

Class BufferedImage

java.lang.Object
java.awt.Image
java.awt.image.BufferedImage
所有已实现的接口:
RenderedImage, WritableRenderedImage, Transparency

public class BufferedImage extends Image implements WritableRenderedImage, Transparency
BufferedImage子类描述了一个具有可访问的图像数据缓冲区的Image。一个BufferedImage由一个ColorModel和一个图像数据的Raster组成。RasterSampleModel中的波段数量和类型必须与ColorModel所需的用于表示其颜色和alpha分量的数量和类型匹配。所有BufferedImage对象的左上角坐标为(0, 0)。用于构造BufferedImage的任何Raster必须具有minX=0和minY=0。

该类依赖于Raster的数据获取和设置方法,以及ColorModel的颜色特征方法。

参见:
  • Field Details

    • TYPE_CUSTOM

      public static final int TYPE_CUSTOM
      图像类型未被识别,因此必须是自定义图像。此类型仅用作getType()方法的返回值。
      参见:
    • TYPE_INT_RGB

      public static final int TYPE_INT_RGB
      表示具有8位RGB颜色分量打包到整数像素中的图像。该图像具有没有alpha通道的DirectColorModel。当存储具有非不透明alpha的数据时,颜色数据必须调整为非预乘形式,并丢弃alpha,如AlphaComposite文档中所述。
      参见:
    • TYPE_INT_ARGB

      public static final int TYPE_INT_ARGB
      表示具有8位RGBA颜色分量打包到整数像素中的图像。该图像具有带alpha的DirectColorModel。此图像中的颜色数据被认为没有与alpha预乘。当此类型用作BufferedImage构造函数的imageType参数时,创建的图像与JDK1.1和更早版本中创建的图像一致。
      参见:
    • TYPE_INT_ARGB_PRE

      public static final int TYPE_INT_ARGB_PRE
      表示具有8位RGBA颜色分量打包到整数像素中的图像。该图像具有带alpha的DirectColorModel。此图像中的颜色数据被认为已经与alpha预乘。
      参见:
    • TYPE_INT_BGR

      public static final int TYPE_INT_BGR
      代表具有8位RGB颜色分量的图像,对应于Windows或Solaris风格的BGR颜色模型,颜色蓝色、绿色和红色打包到整数像素中。没有alpha通道。图像具有DirectColorModel。当存储具有非不透明alpha的数据时,必须调整颜色数据为非预乘形式并丢弃alpha,如在AlphaComposite文档中所述。
      参见:
    • TYPE_3BYTE_BGR

      public static final int TYPE_3BYTE_BGR
      代表具有8位RGB颜色分量的图像,对应于Windows风格的BGR颜色模型,颜色蓝色、绿色和红色存储在3个字节中。没有alpha通道。图像具有ComponentColorModel。当存储具有非不透明alpha的数据时,必须调整颜色数据为非预乘形式并丢弃alpha,如在AlphaComposite文档中所述。
      参见:
    • TYPE_4BYTE_ABGR

      public static final int TYPE_4BYTE_ABGR
      代表具有8位RGBA颜色分量的图像,颜色蓝色、绿色和红色存储在3个字节中,还有1个alpha字节。图像具有带alpha通道的ComponentColorModel。此图像中的颜色数据被认为未与alpha预乘。字节数据以A、B、G、R的顺序交错存储在单个字节数组中,每个像素内从低到高字节地址。
      参见:
    • TYPE_4BYTE_ABGR_PRE

      public static final int TYPE_4BYTE_ABGR_PRE
      代表具有8位RGBA颜色分量的图像,颜色蓝色、绿色和红色存储在3个字节中,还有1个alpha字节。图像具有带alpha通道的ComponentColorModel。此图像中的颜色数据被认为已与alpha预乘。字节数据以A、B、G、R的顺序交错存储在单个字节数组中,每个像素内从低到高字节地址。
      参见:
    • TYPE_USHORT_565_RGB

      public static final int TYPE_USHORT_565_RGB
      代表具有5-6-5 RGB颜色分量(5位红色,6位绿色,5位蓝色)的图像,没有alpha通道。此图像具有DirectColorModel。当存储具有非不透明alpha的数据时,必须调整颜色数据为非预乘形式并丢弃alpha,如在AlphaComposite文档中所述。
      参见:
    • TYPE_USHORT_555_RGB

      public static final int TYPE_USHORT_555_RGB
      代表具有5-5-5 RGB颜色分量(5位红色,5位绿色,5位蓝色)的图像,没有alpha通道。此图像具有DirectColorModel。当存储具有非不透明alpha的数据时,必须调整颜色数据为非预乘形式并丢弃alpha,如在AlphaComposite文档中所述。
      参见:
    • TYPE_BYTE_GRAY

      public static final int TYPE_BYTE_GRAY
      代表无符号字节灰度图像,非索引。此图像具有带CS_GRAYColorSpaceComponentColorModel。当存储具有非不透明alpha的数据时,必须调整颜色数据为非预乘形式并丢弃alpha,如在AlphaComposite文档中所述。
      参见:
    • TYPE_USHORT_GRAY

      public static final int TYPE_USHORT_GRAY
      代表无符号短整型灰度图像,非索引。此图像具有带CS_GRAYColorSpaceComponentColorModel。当存储具有非不透明alpha的数据时,必须调整颜色数据为非预乘形式并丢弃alpha,如在AlphaComposite文档中所述。
      参见:
    • TYPE_BYTE_BINARY

      public static final int TYPE_BYTE_BINARY
      代表不透明的字节打包1、2或4位图像。图像具有没有alpha通道的IndexColorModel。当此类型用作BufferedImage构造函数的imageType参数时,但没有ColorModel参数,将创建一个具有两种颜色({0,0,0}和{255,255,255})的默认sRGBColorSpace中的IndexColorModel的1位图像。

      每像素2或4位的图像可以通过提供具有适当映射大小的ColorModelBufferedImage构造函数来构造。

      每像素8位的图像应该使用图像类型TYPE_BYTE_INDEXEDTYPE_BYTE_GRAY,具体取决于它们的ColorModel

      当颜色数据存储在此类型的图像中时,颜色映射表中最接近的颜色由IndexColorModel确定,并存储结果索引。根据IndexColorModel颜色映射表中的颜色,可能会导致近似和丢失alpha或颜色分量。

      参见:
    • TYPE_BYTE_INDEXED

      public static final int TYPE_BYTE_INDEXED
      代表索引字节图像。当此类型用作BufferedImage构造函数的imageType参数时,但没有ColorModel参数,将创建一个具有256色6/6/6颜色立方调色板的IndexColorModel,其余颜色从216到255由默认sRGB ColorSpace中的灰度值填充。

      当颜色数据存储在此类型的图像中时,颜色映射表中最接近的颜色由IndexColorModel确定,并存储结果索引。根据IndexColorModel颜色映射表中的颜色,可能会导致近似和丢失alpha或颜色分量。

      参见:
  • Constructor Details

    • BufferedImage

      public BufferedImage(int width, int height, int imageType)
      构造一个预定义图像类型之一的BufferedImage。图像的ColorSpace为默认的sRGB空间。
      参数:
      width - 创建图像的宽度
      height - 创建图像的高度
      imageType - 创建图像的类型
      参见:
    • BufferedImage

      public BufferedImage(int width, int height, int imageType, IndexColorModel cm)
      构造一个预定义图像类型之一的BufferedImage:TYPE_BYTE_BINARY或TYPE_BYTE_INDEXED。

      如果图像类型为TYPE_BYTE_BINARY,则使用颜色模型中的条目数来确定图像应该每像素有1、2或4位。如果颜色模型有1或2个条目,则图像将每像素有1位。如果有3或4个条目,则图像将每像素有2位。如果有5到16个条目,则图像将每像素有4位。否则,将抛出IllegalArgumentException异常。

      参数:
      width - 创建图像的宽度
      height - 创建图像的高度
      imageType - 创建图像的类型
      cm - 创建图像的IndexColorModel
      抛出:
      IllegalArgumentException - 如果imageType不是TYPE_BYTE_BINARY或TYPE_BYTE_INDEXED,或者如果imageType是TYPE_BYTE_BINARY且颜色映射有超过16个条目。
      参见:
    • BufferedImage

      public BufferedImage(ColorModel cm, WritableRaster raster, boolean isRasterPremultiplied, Hashtable<?,?> properties)
      构造一个具有指定ColorModelRaster的新BufferedImage。如果RasterSampleModel中的波段数量和类型与ColorModel所需的用于表示其颜色和alpha分量的数量和类型不匹配,则会抛出一个RasterFormatException。此方法可以通过alpha乘法或除法来匹配ColorModel中的alphaPremultiplied状态来调整颜色Raster数据。可以通过传入String/Object对的Hashtable来建立此BufferedImage的属性。
      参数:
      cm - 新图像的ColorModel
      raster - 图像数据的Raster
      isRasterPremultiplied - 如果为true,则Raster中的数据已经与alpha预乘。
      properties - String/Object对的Hashtable
      抛出:
      RasterFormatException - 如果RasterSampleModel中的波段数量和类型与ColorModel所需的用于表示其颜色和alpha分量的数量和类型不匹配。
      IllegalArgumentException - 如果rastercm不兼容
      参见:
  • Method Details

    • getType

      public int getType()
      返回图像类型。如果不是已知类型之一,则返回TYPE_CUSTOM
      返回:
      BufferedImage的图像类型。
      参见:
    • getColorModel

      public ColorModel getColorModel()
      返回ColorModel
      指定者:
      getColorModel 在接口 RenderedImage
      返回:
      BufferedImageColorModel
    • getRaster

      public WritableRaster getRaster()
      返回WritableRaster
      返回:
      BufferedImageWritableRaster
    • getAlphaRaster

      public WritableRaster getAlphaRaster()
      返回一个表示BufferedImage对象的alpha通道的WritableRaster,对于支持单独空间alpha通道的ColorModel对象(如ComponentColorModelDirectColorModel)。如果此图像的ColorModel没有关联的alpha通道,则返回null。此方法假定对于除IndexColorModel之外的所有ColorModel对象,如果ColorModel支持alpha,则有一个单独的alpha通道,该通道存储为图像数据的最后一个波段。如果图像使用具有查找表中alpha的IndexColorModel,则此方法返回null,因为没有空间离散的alpha通道。此方法创建一个新的WritableRaster,但共享数据数组。
      返回:
      一个WritableRasternull(如果此BufferedImageColorModel没有关联的alpha通道)。
    • getRGB

      public int getRGB(int x, int y)
      返回默认RGB颜色模型(TYPE_INT_ARGB)和默认sRGB颜色空间中的整数像素。如果此默认模型与图像ColorModel不匹配,则进行颜色转换。使用此方法时,每个颜色分量仅有8位精度的返回数据。

      如果坐标不在边界内,则可能抛出ArrayOutOfBoundsException。但是,不保证显式边界检查。

      参数:
      x - 获取默认RGB颜色模型和sRGB颜色空间中像素的像素的X坐标
      y - 获取默认RGB颜色模型和sRGB颜色空间中像素的像素的Y坐标
      返回:
      默认RGB颜色模型和默认sRGB颜色空间中的整数像素。
      参见:
    • getRGB

      public int[] getRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize)
      返回默认RGB颜色模型(TYPE_INT_ARGB)和默认sRGB颜色空间中的整数像素数组,从图像数据的一部分。如果默认模型与图像ColorModel不匹配,则进行颜色转换。使用此方法时,每个颜色分量仅有8位精度的返回数据。使用指定的坐标(x,y)在图像中,可以这样访问ARGB像素:
          pixel   = rgbArray[offset + (y-startY)*scansize + (x-startX)]; 

      如果区域不在边界内,则可能抛出ArrayOutOfBoundsException。但是,不保证显式边界检查。

      参数:
      startX - 起始X坐标
      startY - 起始Y坐标
      w - 区域的宽度
      h - 区域的高度
      rgbArray - 如果不为null,则将rgb像素写入此处
      offset - rgbArray中的偏移量
      scansize - rgbArray的扫描线跨度
      返回:
      RGB像素数组。
      参见:
    • setRGB

      public void setRGB(int x, int y, int rgb)
      将此BufferedImage中的像素设置为指定的RGB值。假定像素位于默认RGB颜色模型(TYPE_INT_ARGB)和默认sRGB颜色空间中。对于具有IndexColorModel的图像,选择最接近颜色的索引。

      如果坐标不在边界内,则可能抛出ArrayOutOfBoundsException。但是,不保证显式边界检查。

      参数:
      x - 要设置像素的像素的X坐标
      y - 要设置像素的像素的Y坐标
      rgb - RGB值
      参见:
    • setRGB

      public void setRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize)
      将默认RGB颜色模型(TYPE_INT_ARGB)和默认sRGB颜色空间中的整数像素数组设置到图像数据的一部分。如果默认模型与图像ColorModel不匹配,则进行颜色转换。使用此方法时,每个颜色分量仅有8位精度的返回数据。使用指定的坐标(x,y)在此图像中,可以这样访问ARGB像素:
          pixel   = rgbArray[offset + (y-startY)*scansize + (x-startX)];
       
      警告:不进行抖动。

      如果区域不在边界内,则可能抛出ArrayOutOfBoundsException。但是,不保证显式边界检查。

      参数:
      startX - 起始X坐标
      startY - 起始Y坐标
      w - 区域的宽度
      h - 区域的高度
      rgbArray - rgb像素
      offset - rgbArray中的偏移量
      scansize - rgbArray的扫描线跨度
      参见:
    • getWidth

      public int getWidth()
      返回BufferedImage的宽度。
      指定者:
      getWidth 在接口 RenderedImage
      返回:
      BufferedImage的宽度
    • getHeight

      public int getHeight()
      返回BufferedImage的高度。
      指定者:
      getHeight 在接口 RenderedImage
      返回:
      BufferedImage的高度
    • getWidth

      public int getWidth(ImageObserver observer)
      返回BufferedImage的宽度。
      指定者:
      getWidth 在类 Image
      参数:
      observer - 被忽略
      返回值:
      这个BufferedImage的宽度
      参见:
    • getHeight

      public int getHeight(ImageObserver observer)
      返回BufferedImage的高度。
      指定者:
      getHeight 在类 Image
      参数:
      observer - 被忽略
      返回值:
      这个BufferedImage的高度
      参见:
    • getSource

      public ImageProducer getSource()
      返回产生图像像素的对象。
      指定者:
      getSource 在类 Image
      返回值:
      用于生成此图像像素的ImageProducer
      参见:
    • getProperty

      public Object getProperty(String name, ImageObserver observer)
      通过名称返回图像的属性。各种图像格式定义了各个属性名称。如果某个图像没有定义特定属性,则此方法返回UndefinedProperty字段。如果尚未知道此图像的属性,则此方法返回null,稍后会通知ImageObserver对象。属性名称"comment"应用于存储可作为图像描述、来源或作者的可选注释。
      指定者:
      getProperty 在类 Image
      参数:
      name - 属性名称
      observer - 接收有关图像信息的ImageObserver
      返回值:
      由指定name引用的属性的Object,如果尚未知道此图像的属性,则返回null
      抛出:
      NullPointerException - 如果属性名称为null。
      参见:
    • getProperty

      public Object getProperty(String name)
      通过名称返回图像的属性。
      指定者:
      getProperty 在接口 RenderedImage
      参数:
      name - 属性名称
      返回值:
      由指定name引用的Object
      抛出:
      NullPointerException - 如果属性名称为null。
      参见:
    • getGraphics

      public Graphics getGraphics()
      此方法返回一个Graphics2D,但这里是为了向后兼容。createGraphics更方便,因为它声明为返回Graphics2D
      指定者:
      getGraphics 在类 Image
      返回值:
      一个Graphics2D,可用于绘制到此图像中。
      参见:
    • createGraphics

      public Graphics2D createGraphics()
      创建一个Graphics2D,可用于绘制到此BufferedImage中。
      返回值:
      一个Graphics2D,用于绘制到此图像中。
    • getSubimage

      public BufferedImage getSubimage(int x, int y, int w, int h)
      返回由指定矩形区域定义的子图像。返回的BufferedImage与原始图像共享相同的数据数组。
      参数:
      x - 指定矩形区域左上角的X坐标
      y - 指定矩形区域左上角的Y坐标
      w - 指定矩形区域的宽度
      h - 指定矩形区域的高度
      返回值:
      一个BufferedImage,是此BufferedImage的子图像。
      抛出:
      RasterFormatException - 如果指定区域不包含在此BufferedImage中。
    • isAlphaPremultiplied

      public boolean isAlphaPremultiplied()
      返回alpha是否已经预乘。如果没有alpha,则返回false
      返回值:
      如果alpha已经预乘,则返回true;否则返回false
    • coerceData

      public void coerceData(boolean isAlphaPremultiplied)
      强制数据匹配isAlphaPremultiplied变量中指定的状态。它可能会将颜色光栅数据乘以或除以alpha,或者如果数据处于正确状态,则不执行任何操作。
      参数:
      isAlphaPremultiplied - 如果alpha已经预乘,则为true;否则为false
    • toString

      public String toString()
      返回此BufferedImage对象及其值的String表示形式。
      覆盖:
      toString 在类 Object
      返回值:
      代表此BufferedImageString
    • getSources

      public Vector<RenderedImage> getSources()
      返回一个Vector,其中包含为此BufferedImage的图像数据的直接源(而不是这些直接源的源)。如果BufferedImage没有关于其直接源的信息,则此方法返回null。如果BufferedImage没有直接源,则返回一个空的Vector
      指定者:
      getSources 在接口 RenderedImage
      返回值:
      包含此BufferedImage对象的图像数据的直接源的Vector,如果此BufferedImage没有关于其直接源的信息,则返回null,如果此BufferedImage没有直接源,则返回一个空的Vector
    • getPropertyNames

      public String[] getPropertyNames()
      返回getProperty(String)识别的名称数组,如果没有识别到属性名称,则返回null
      指定者:
      getPropertyNames 在接口 RenderedImage
      返回值:
      包含getProperty(String)识别的所有属性名称的String数组;如果没有识别到属性名称,则返回null
    • getMinX

      public int getMinX()
      返回此BufferedImage的最小x坐标。这始终为零。
      指定者:
      getMinX 在接口 RenderedImage
      返回值:
      BufferedImage的最小x坐标。
    • getMinY

      public int getMinY()
      返回此BufferedImage的最小y坐标。这始终为零。
      指定者:
      getMinY 在接口 RenderedImage
      返回值:
      BufferedImage的最小y坐标。
    • getSampleModel

      public SampleModel getSampleModel()
      返回与此BufferedImage关联的SampleModel
      指定者:
      getSampleModel 在接口 RenderedImage
      返回值:
      BufferedImageSampleModel
    • getNumXTiles

      public int getNumXTiles()
      返回x方向上的瓦片数。这始终为一。
      指定者:
      getNumXTiles 在接口 RenderedImage
      返回:
      x方向上的瓦片数。
    • getNumYTiles

      public int getNumYTiles()
      返回y方向上的瓦片数。这总是一个。
      指定者:
      getNumYTiles 在接口 RenderedImage
      返回:
      y方向上的瓦片数。
    • getMinTileX

      public int getMinTileX()
      返回x方向上的最小瓦片索引。这总是零。
      指定者:
      getMinTileX 在接口 RenderedImage
      返回:
      x方向上的最小瓦片索引。
    • getMinTileY

      public int getMinTileY()
      返回y方向上的最小瓦片索引。这总是零。
      指定者:
      getMinTileY 在接口 RenderedImage
      返回:
      y方向上的最小瓦片索引。
    • getTileWidth

      public int getTileWidth()
      返回瓦片的像素宽度。
      指定者:
      getTileWidth 在接口 RenderedImage
      返回:
      瓦片的像素宽度。
    • getTileHeight

      public int getTileHeight()
      返回瓦片的像素高度。
      指定者:
      getTileHeight 在接口 RenderedImage
      返回:
      瓦片的像素高度。
    • getTileGridXOffset

      public int getTileGridXOffset()
      返回瓦片网格相对于原点的x偏移量,例如,瓦片(0, 0)的位置的x坐标。这总是零。
      指定者:
      getTileGridXOffset 在接口 RenderedImage
      返回:
      瓦片网格的x偏移量。
    • getTileGridYOffset

      public int getTileGridYOffset()
      返回瓦片网格相对于原点的y偏移量,例如,瓦片(0, 0)的位置的y坐标。这总是零。
      指定者:
      getTileGridYOffset 在接口 RenderedImage
      返回:
      瓦片网格的y偏移量。
    • getTile

      public Raster getTile(int tileX, int tileY)
      返回瓦片(tileXtileY)。请注意,tileXtileY是瓦片数组的索引,而不是像素位置。返回的Raster是实时的,这意味着如果图像发生更改,它将被更新。
      指定者:
      getTile 在接口 RenderedImage
      参数:
      tileX - 请求的瓦片在瓦片数组中的x索引
      tileY - 请求的瓦片在瓦片数组中的y索引
      返回:
      由参数tileXtileY定义的Raster
      抛出:
      ArrayIndexOutOfBoundsException - 如果tileXtileY都不等于0
    • getData

      public Raster getData()
      返回作为一个大瓦片的图像。返回的Raster是图像数据的副本,如果图像发生更改,则不会更新。
      指定者:
      getData 在接口 RenderedImage
      返回:
      一个Raster,是图像数据的副本。
      参见:
    • getData

      public Raster getData(Rectangle rect)
      计算并返回BufferedImage的任意区域。返回的Raster是图像数据的副本,如果图像发生更改,则不会更新。
      指定者:
      getData 在接口 RenderedImage
      参数:
      rect - 要返回的BufferedImage的区域。
      返回:
      一个Raster,是指定BufferedImage区域的图像数据的副本。
      参见:
    • copyData

      public WritableRaster copyData(WritableRaster outRaster)
      计算BufferedImage的任意矩形区域,并将其复制到指定的WritableRaster中。要计算的区域是从指定WritableRaster的边界确定的。指定的WritableRaster必须具有与此图像兼容的SampleModel。如果outRasternull,则会创建一个适当的WritableRaster
      指定者:
      copyData 在接口 RenderedImage
      参数:
      outRaster - 用于保存图像的返回部分的WritableRaster,或null
      返回:
      对提供的或创建的WritableRaster的引用。
    • setData

      public void setData(Raster r)
      将图像的矩形区域设置为指定Raster r的内容,假定Raster rBufferedImage在相同的坐标空间中。操作被剪切到BufferedImage的边界。
      指定者:
      setData 在接口 WritableRenderedImage
      参数:
      r - 指定的Raster
      参见:
    • addTileObserver

      public void addTileObserver(TileObserver to)
      添加一个瓦片观察者。如果观察者已经存在,则会接收多个通知。

      此方法忽略其参数并不执行任何操作,因为BufferedImage始终用于写入,不能设置为只读,因此永远不会有事件需要分派。

      指定者:
      addTileObserver 在接口 WritableRenderedImage
      参数:
      to - 指定的TileObserver
    • removeTileObserver

      public void removeTileObserver(TileObserver to)
      移除一个瓦片观察者。如果观察者未注册,则不会发生任何操作。如果观察者已注册多个通知,则现在注册的通知将减少一个。

      此方法忽略给定的观察者,因为addTileObserver(TileObserver)不会添加任何内容。

      指定者:
      removeTileObserver 在接口 WritableRenderedImage
      参数:
      to - 指定的TileObserver
    • isTileWritable

      public boolean isTileWritable(int tileX, int tileY)
      返回当前是否有一个瓦片用于写入。在BufferedImage中,唯一的瓦片位于(0,0),并且始终可写,因此使用(0,0)调用此方法将始终返回true,任何其他坐标将导致抛出异常。
      指定者:
      isTileWritable 在接口 WritableRenderedImage
      参数:
      tileX - 瓦片的x索引。
      tileY - 瓦片的y索引。
      返回:
      如果由指定索引指定的瓦片用于写入,则返回true;否则返回false
      抛出:
      IllegalArgumentException - 如果tileXtileY不等于0
    • getWritableTileIndices

      public Point[] getWritableTileIndices()
      返回一个Point对象数组,指示哪些瓦片用于写入。如果没有瓦片用于写入,则返回null

      由于BufferedImage由单个瓦片组成,并且该瓦片始终用于写入,因此此方法返回一个点的数组。此外,偏移量应与getMinTileX()getMinTileY()保持一致,在BufferedImage中始终为(0,0)。这将始终是单个返回的Point的坐标。

      指定者:
      getWritableTileIndices 在接口 WritableRenderedImage
      返回:
      一个Point数组,指示已经检出用于写入的瓦片,如果没有瓦片用于写入,则返回null
    • hasTileWriters

      public boolean hasTileWriters()
      返回是否有任何瓦片已经检出用于写入。在语义上等同于
       (getWritableTileIndices() != null).
       
      指定者:
      hasTileWriters 在接口 WritableRenderedImage
      返回:
      如果有任何瓦片已经检出用于写入,则返回true;否则返回false
    • getWritableTile

      public WritableRaster getWritableTile(int tileX, int tileY)
      检出一个瓦片用于写入。当一个瓦片从没有写入者到有一个写入者时,所有注册的TileObservers都会收到通知。

      此方法无条件返回单个瓦片,而不检查传递的值。由于返回的瓦片始终已经检出用于写入,因此不会通知任何监听器。

      指定者:
      getWritableTile 在接口 WritableRenderedImage
      参数:
      tileX - 瓦片的x索引
      tileY - 瓦片的y索引
      返回:
      一个WritableRaster,即由指定索引指示的瓦片,用于检出用于写入。
    • releaseWritableTile

      public void releaseWritableTile(int tileX, int tileY)
      放弃对瓦片的写入权限。如果调用者继续写入该瓦片,则结果是未定义的。对此方法的调用应该只与对getWritableTile(int, int)的调用成对出现。其他任何调用都会导致未定义的结果。当一个瓦片从有一个写入者到没有写入者时,所有注册的TileObservers都会收到通知。

      此方法立即返回,而不检查传递的值。由于单个瓦片始终已经检出用于写入,因此不会通知任何监听器。

      指定者:
      releaseWritableTile 在接口 WritableRenderedImage
      参数:
      tileX - 瓦片的x索引
      tileY - 瓦片的y索引
    • getTransparency

      public int getTransparency()
      返回透明度。返回值可能为OPAQUE、BITMASK或TRANSLUCENT。
      指定者:
      getTransparency 在接口 Transparency
      返回:
      BufferedImage的透明度。
      自:
      1.5
      参见: