Module  java.desktop
软件包  java.awt.image

Interface WritableRenderedImage

  • All Superinterfaces:
    RenderedImage
    所有已知实现类:
    BufferedImage


    public interface WritableRenderedImage
    extends RenderedImage
    WritableRenderedImage是包含或可以以Raster形式生成图像数据的对象的通用接口,可以修改和/或写入。 图像数据可以被存储/生成为单个瓦片或普通瓦片阵列。

    WritableRenderedImage在通过签出书签(通过getWritableTile方法)和特定瓦片的最后一个作者放弃其访问(通过调用releaseWritableTile)时,向其他感兴趣的对象提供通知。 另外,它允许任何调用者确定当前是否已经检出了任何图块(通过hasTileWriters),并获得这样的图块列表(通过getWritableTileIndices,以Point对象的向量的形式)。

    希望通知瓦片可写性更改的对象必须实现TileObserver接口,并通过调用addTileObserver来添加。 对同一个对象的多次调用addTileObserver将导致多个通知。 现有的观察者可以通过调用removeTileObserver来减少通知; 如果观察者没有通知,则操作是无效的。

    WritableRenderedImage有必要确保仅当第一个作者获取图块并且最后一个作者发布时才会发生通知。

    • 方法详细信息

      • addTileObserver

        void addTileObserver​(TileObserver to)
        添加观察者 如果观察者已经存在,它将收到多个通知。
        参数
        to - 指定的 TileObserver
      • removeTileObserver

        void removeTileObserver​(TileObserver to)
        删除观察者 如果观察员没有注册,没有任何反应。 如果观察员注册了多个通知,则现在将被注册少一个。
        参数
        to - 指定的 TileObserver
      • getWritableTile

        WritableRaster getWritableTile​(int tileX,
                                       int tileY)
        检查一个瓦片写作。 WritableRenderedImage负责通知所有TileObservers,当一个tile从没有写入器到一个写入器。
        参数
        tileX - 图块的X索引。
        tileY - 瓷砖的Y指数。
        结果
        一个可写的瓷砖。
      • releaseWritableTile

        void releaseWritableTile​(int tileX,
                                 int tileY)
        放弃写入瓦片的权利。 如果呼叫者继续写入瓦片,结果是未定义的。 对此方法的调用只能与匹配的getContextTile调用对匹配; 任何其他用途将导致未定义的结果。 WritableRenderedImage负责通知所有TileObserver当一个tile从一个作家到没有写者。
        参数
        tileX - 图块的X索引。
        tileY - 瓷砖的Y指数。
      • isTileWritable

        boolean isTileWritable​(int tileX,
                               int tileY)
        返回是否当前签出图块以进行写入。
        参数
        tileX - 图块的X索引。
        tileY - 瓷砖的Y指数。
        结果
        true如果指定的瓦片被签出写入; 否则为false
      • getWritableTileIndices

        Point[] getWritableTileIndices​()
        返回一个Point对象数组,指示哪些tile被签出用于写入。 如果没有签出,则返回null。
        结果
        一个数组,其中包含被签出用于写入的图块的位置。
      • hasTileWriters

        boolean hasTileWriters​()
        返回是否签出任何图块以进行写入。 语义上相当于(getWritableTileIndices()!= null)。
        结果
        true如果任何瓷砖被签出写作; 否则为false
      • setData

        void setData​(Raster r)
        将图像的矩形设置为Raster r的内容,该Raster r假定为与WritableRenderedImage在同一坐标空间。 该操作被剪切到WritableRenderedImage的边界。
        参数
        r - 指定的 Raster