-
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>
voidsetPixels(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
- 如果color
是null
-
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
- 如果pixelformat
或buffer
是null
-
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
- 如果pixelformat
或buffer
是null
-
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
- 如果pixelformat
或buffer
是null
-
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
- 如果reader
是null
-
-