Module  javafx.graphics
软件包  javafx.scene.image

Interface PixelWriter



  • public interface PixelWriter
    该界面定义了用于写入WritableImage或包含可写入像素的其他表面的像素数据的方法。
    从以下版本开始:
    JavaFX 2.2
    • 方法摘要

      所有方法  接口方法  抽象方法 
      Modifier and Type 方法 描述
      PixelFormat getPixelFormat​()
      该方法返回表面存储其像素的 PixelFormat ,或大致相当的像素格式,从而可以轻松地将像素转换为用于编写它们的像素。
      void setArgb​(int x, int y, int argb)
      将颜色的像素数据存储到表面的指定坐标。
      void setColor​(int x, int y, Color c)
      Color像素数据存储到表面的指定坐标。
      void setPixels​(int x, int y, int w, int h, PixelFormat<ByteBuffer> pixelformat, byte[] buffer, int offset, int scanlineStride)
      将来自字节数组的像素数据存储到表面的矩形区域中。
      void setPixels​(int x, int y, int w, int h, PixelFormat<IntBuffer> pixelformat, int[] buffer, int offset, int scanlineStride)
      将来自int数组的像素数据存储到表面的矩形区域中。
      <T extends Buffer>
      void
      setPixels​(int x, int y, int w, int h, PixelFormat<T> pixelformat, T buffer, int scanlineStride)
      将像素数据从缓冲区存储到表面的矩形区域。
      void setPixels​(int dstx, int dsty, int w, int h, PixelReader reader, int srcx, int srcy)
      将从 PixelReader实例检索的像素数据存储到表面的矩形区域中。
    • 方法详细信息

      • getPixelFormat

        PixelFormat getPixelFormat​()
        该方法返回表面存储其像素的 PixelFormat ,或者大致等效的像素格式,从而可以轻松地将像素转换为用于编写它们的像素。
        结果
        最好描述底层像素的 PixelFormat
      • setArgb

        void setArgb​(int x,
                     int y,
                     int argb)
        将颜色的像素数据存储到表面的指定坐标。 32位整数argb参数应包含从最高有效字节到最低有效字节的ARGB顺序的单独8位字段中的4种颜色分量。
        参数
        x - 要写入的像素颜色的X坐标
        y - 要写入的像素颜色的Y坐标
        argb - 要写入的颜色信息,以 INT_ARGB PixelFormat类型描述的格式指定。
      • setColor

        void setColor​(int x,
                      int y,
                      Color c)
        Color像素数据存储到表面的指定坐标。
        参数
        x - 要写入的像素颜色的X坐标
        y - 要写入的像素颜色的Y坐标
        c - 要写入或无效的颜色
        异常
        NullPointerException - 如果 colornull
      • setPixels

        <T extends Buffer> void setPixels​(int x,
                                          int y,
                                          int w,
                                          int h,
                                          PixelFormat<T> pixelformat,
                                          T buffer,
                                          int scanlineStride)
        将像素数据从缓冲区存储到表面的矩形区域。 缓冲区中的像素的格式由PixelFormat对象定义,像素格式转换将根据需要执行,以将数据存储到表面。 假设缓冲器被定位到位于位置(x, y)的表面像素中要存储的第一像素数据的位置。 一行的像素数据将从缓冲区内的相邻位置读取,尽可能紧凑地增加X坐标。 相邻行的像素数据将通过由scanlineStride定义的缓冲区数据元素的数量彼此偏移。
        参数类型
        T - 缓冲区的类型
        参数
        x - 要写入的矩形区域的X坐标
        y - 要写入的矩形区域的Y坐标
        w - 要写入的矩形区域的宽度
        h - 要写入的矩形区域的高度
        pixelformat - PixelFormat对象定义从缓冲区读取像素的格式
        buffer - 适合指定的 PixelFormat对象的缓冲区
        scanlineStride - 用于将缓冲区中的一行数据开始到下一行数据的开始的像素数据之间的距离。
        异常
        NullPointerException - 如果 pixelformatbuffernull
      • setPixels

        void setPixels​(int x,
                       int y,
                       int w,
                       int h,
                       PixelFormat<ByteBuffer> pixelformat,
                       byte[] buffer,
                       int offset,
                       int scanlineStride)
        将来自字节数组的像素数据存储到表面的矩形区域中。 缓冲区中的像素的格式由PixelFormat对象定义,像素格式转换将根据需要执行,以将数据存储到表面。 pixelformat必须是兼容的PixelFormat<ByteBuffer>类型。 位置(x, y)处的第一个像素的数据将从offset参数指定的数组索引读取。 一行中的像素数据将从数组中紧邻的数组中的相邻位置读取,以增加X坐标。 相邻行的像素数据将被读取由scanlineStride定义的字节数组元素的数量彼此偏移。
        参数
        x - 要写入的矩形区域的X坐标
        y - 要写入的矩形区域的Y坐标
        w - 要写入的矩形区域的宽度
        h - 要写入的矩形区域的高度
        pixelformat - PixelFormat<ByteBuffer>对象定义从缓冲区读取像素的字节格式
        buffer - 一个包含要存储的像素数据的字节数组
        offset - 偏移到 buffer读取第一个像素数据
        scanlineStride - 用于将缓冲器中的一行数据开始到下一行数据的开始的像素数据之间的距离
        异常
        NullPointerException - 如果 pixelformatbuffernull
      • setPixels

        void setPixels​(int x,
                       int y,
                       int w,
                       int h,
                       PixelFormat<IntBuffer> pixelformat,
                       int[] buffer,
                       int offset,
                       int scanlineStride)
        将来自int数组的像素数据存储到表面的矩形区域中。 缓冲区中的像素的格式由PixelFormat对象定义,像素格式转换将根据需要执行,以将数据存储到表面。 pixelformat必须是兼容的PixelFormat<IntBuffer>类型。 位置(x, y)的第一个像素的数据将从offset参数指定的数组索引读取。 一行中的像素数据将从数组中紧邻的数组中的相邻位置读取,以增加X坐标。 相邻行的像素数据将通过由scanlineStride定义的int数组元素的数量彼此偏移。
        参数
        x - 要写入的矩形区域的X坐标
        y - 要写入的矩形区域的Y坐标
        w - 要写入的矩形区域的宽度
        h - 要写入的矩形区域的高度
        pixelformat - PixelFormat<IntBuffer>对象定义从缓冲区读取像素的int格式
        buffer - 一个用于包含要存储的像素数据的int数组
        offset - 偏移到 buffer读取第一个像素数据
        scanlineStride - 用于将缓冲器中的一行数据开始到下一行数据的开始的像素数据之间的距离
        异常
        NullPointerException - 如果 pixelformatbuffernull
      • setPixels

        void setPixels​(int dstx,
                       int dsty,
                       int w,
                       int h,
                       PixelReader reader,
                       int srcx,
                       int srcy)
        将从PixelReader实例检索的像素数据存储到表面的矩形区域中。 (dstx, dsty)表面像素的数据将从reader从其位置(srcx, srcy) 该方法执行语义上相当于(尽管可能比该伪代码快得多)的操作:
          for (int y = 0; y < h, y++) {
                 for (int x = 0; x < w; x++) {
                     setArgb(dstx + x, dsty + y,
                             reader.getArgb(srcx + x, srcy + y));
                 }
             } 
        参数
        dstx - 要写入的矩形区域的X坐标
        dsty - 要写入的矩形区域的Y坐标
        w - 要写入的矩形区域的宽度
        h - 要写入的矩形区域的高度
        reader - PixelReader用于获取像素数据写入
        srcx - 要从 reader读取的数据的X坐标
        srcy - 要从 reader读取的数据的Y坐标
        异常
        NullPointerException - 如果 readernull