模块  java.desktop
软件包  java.awt.image

Interface WritableRenderedImage

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

    public interface WritableRenderedImage
    extends RenderedImage
    WritableRenderedImage是包含或可以以Rasters形式生成图像数据的对象的通用接口,可以对其进行修改和/或写入。 图像数据可以作为单个图块或常规图块阵列存储/产生。

    当检出磁贴用于写入时(通过getWritableTile方法)以及特定磁贴的最后一个写入器放弃其访问权限(通过调用releaseWritableTile)时,WritableRenderedImage向其他感兴趣的对象提供通知。 此外,它允许任何调用者确定当前是否已检出任何切片(通过hasTileWriters),并获取此类切片的列表(通过getWritableTileIndices,以Vector对象的Vector形式)。

    希望通知tile可写性变化的对象必须实现TileObserver接口,并通过调用addTileObserver添加。 对同一对象多次调用addTileObserver将导致多个通知。 现有观察者可以通过调用removeTileObserver来减少其通知; 如果观察者没有通知,那么该操作就是无操作。

    WritableRenderedImage必须确保仅在第一个writer获取tile并且最后一个writer释放它时才发生通知。

    • 方法详细信息

      • addTileObserver

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

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

        WritableRaster getWritableTile​(int tileX,
                                       int tileY)
        检查一块瓷砖进行书写。 当一个磁贴从没有编写器变为拥有一个编写器时,WritableRenderedImage负责通知所有TileObservers。
        参数
        tileX - tileX的X索引。
        tileY - tileY的Y索引。
        结果
        可写瓷砖。
      • releaseWritableTile

        void releaseWritableTile​(int tileX,
                                 int tileY)
        放弃写入图块的权利。 如果调用者继续写入磁贴,则结果未定义。 对此方法的调用应仅出现在对getWritableTile调用的匹配对中; 任何其他用途都会导致不确定的结果。 当一个磁贴从一个编写器变为没有编写器时,WritableRenderedImage负责通知其所有TileObservers。
        参数
        tileX - tileX的X索引。
        tileY - tileY的Y索引。
      • isTileWritable

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

        Point[] getWritableTileIndices()
        返回Point对象的数组,指示要检出哪些切片以进行写入。 如果没有签出,则返回null。
        结果
        一个数组,包含要检出以进行写入的切片位置。
      • hasTileWriters

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

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