- java.lang.Object
-
- javafx.scene.image.PixelFormat<T>
-
- 已知直接子类:
-
WritablePixelFormat
public abstract class PixelFormat<T extends Buffer> extends Object
APixelFormat
对象定义给定格式的像素的数据布局。- 从以下版本开始:
- JavaFX 2.2
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static class
PixelFormat.Type
一个枚举,描述由PixelFormat
管理的单个像素的阵列存储格式。
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 static PixelFormat<ByteBuffer>
createByteIndexedInstance(int[] colors)
创建描述像素布局的PixelFormat
实例,将像素存储为单个字节,表示索引到INT_ARGB
格式的 非预乘颜色值的指定查找表中。static PixelFormat<ByteBuffer>
createByteIndexedPremultipliedInstance(int[] colors)
abstract int
getArgb(T buf, int x, int y, int scanlineStride)
从指定坐标的缓冲区读取像素数据,并将其转换为INT_ARGB
格式的颜色的32位整数表示形式。static WritablePixelFormat<ByteBuffer>
getByteBgraInstance()
返回描述像素布局的WritablePixelFormat
实例,其中存储在相邻字节中的像素与 非预乘数组件按照增加索引的顺序存储:蓝色,绿色,红色,alpha。static WritablePixelFormat<ByteBuffer>
getByteBgraPreInstance()
返回描述像素布局的WritablePixelFormat
实例,其中存储在相邻字节中的像素,其中 预乘数组件以增加的索引:蓝色,绿色,红色,alpha的顺序存储。static PixelFormat<ByteBuffer>
getByteRgbInstance()
返回描述像素布局的PixelFormat
实例,其中存储在相邻字节中的像素的颜色分量按照增加的索引顺序存储:红色,绿色和蓝色。static WritablePixelFormat<IntBuffer>
getIntArgbInstance()
返回描述像素布局的WritablePixelFormat
实例,其像素存储在32位整数中, 非预乘数组件按顺序存储,从MSb到LSb:alpha,红,绿,蓝。static WritablePixelFormat<IntBuffer>
getIntArgbPreInstance()
返回描述像素布局的WritablePixelFormat
实例,其像素存储在32位整数中, 预乘数组按顺序存储,从MSb到LSb:alpha,红,绿,蓝。PixelFormat.Type
getType()
返回表示由此PixelFormat
对象管理的像素的存储格式的枚举。abstract boolean
isPremultiplied()
如果通过此格式解码(或编码)的颜色分量被alpha分量预乘以更有效的混合计算,则返回true。abstract boolean
isWritable()
如果此PixelFormat
对象可以将颜色信息转换为像素表示,则返回true。
-
-
-
方法详细信息
-
getIntArgbInstance
public static WritablePixelFormat<IntBuffer> getIntArgbInstance()
返回描述像素布局的WritablePixelFormat
实例,其中以32位整数存储的像素与非预乘数组件按顺序存储,从MSb到LSb:alpha,red,green,blue。可以使用以下示例代码对此格式的像素进行解码:
int pixel = array[rowstart + x]; int alpha = ((pixel >> 24) & 0xff); int red = ((pixel >> 16) & 0xff); int green = ((pixel >> 8) & 0xff); int blue = ((pixel >> ) & 0xff);
- 结果
-
描述指示的像素格式的
WritabelPixelFormat<IntBuffer>
-
getIntArgbPreInstance
public static WritablePixelFormat<IntBuffer> getIntArgbPreInstance()
返回描述像素布局的WritablePixelFormat
实例,其中以32位整数存储的像素,其中预乘数组件按顺序存储,从MSb到LSb:alpha,红,绿,蓝。可以使用以下示例代码对此格式的像素进行解码:
int pixel = array[rowstart + x]; int alpha = ((pixel >> 24) & 0xff); int red = ((pixel >> 16) & 0xff); int green = ((pixel >> 8) & 0xff); int blue = ((pixel >> ) & 0xff);
- 结果
-
描述指示的像素格式的
WritabelPixelFormat<IntBuffer>
-
getByteBgraInstance
public static WritablePixelFormat<ByteBuffer> getByteBgraInstance()
返回描述像素布局的WritablePixelFormat
实例,其中存储在相邻字节中的像素, 非预乘数组件以增加的索引:蓝色,绿色,红色,alpha的顺序存储。可以使用以下示例代码对此格式的像素进行解码:
int i = rowstart + x * 4; int blue = (array[i+0] & 0xff); int green = (array[i+1] & 0xff); int red = (array[i+2] & 0xff); int alpha = (array[i+3] & 0xff);
- 结果
-
描述指示的像素格式的
WritablePixelFormat<ByteBuffer>
-
getByteBgraPreInstance
public static WritablePixelFormat<ByteBuffer> getByteBgraPreInstance()
返回描述像素布局的WritablePixelFormat
实例,其中存储在相邻字节中的像素,其中预乘数组件以增加的索引:蓝色,绿色,红色,alpha的顺序存储。可以使用以下示例代码对此格式的像素进行解码:
int i = rowstart + x * 4; int blue = (array[i+0] & 0xff); int green = (array[i+1] & 0xff); int red = (array[i+2] & 0xff); int alpha = (array[i+3] & 0xff);
- 结果
-
描述指示的像素格式的
WritablePixelFormat<ByteBuffer>
-
getByteRgbInstance
public static PixelFormat<ByteBuffer> getByteRgbInstance()
返回描述像素布局的PixelFormat
实例,其中存储在相邻字节中的像素的颜色分量按照增加的索引顺序存储:红色,绿色和蓝色。可以使用以下示例代码对此格式的像素进行解码:
int i = rowstart + x * 3; int red = (array[i+0] & 0xff); int green = (array[i+1] & 0xff); int blue = (array[i+2] & 0xff);
- 结果
-
描述指示的像素格式的
PixelFormat<ByteBuffer>
-
createByteIndexedPremultipliedInstance
public static PixelFormat<ByteBuffer> createByteIndexedPremultipliedInstance(int[] colors)
创建描述像素布局的PixelFormat
实例,其中像素存储为单个字节,表示INT_ARGB_PRE
格式的预乘颜色值的指定查找表中的索引 。可以使用以下示例代码对此格式的像素进行解码:
int pixel = array[rowstart + x] & 0xff; int argb = colors[pixel]; int alpha = ((argb >> 24) & 0xff); int red = ((argb >> 16) & 0xff); int green = ((argb >> 8) & 0xff); int blue = ((argb ) & 0xff);
- 参数
-
colors
-INT_ARGB_PRE
格式的int[]
阵列的32位颜色值 - 结果
-
a
PixelFormat<ByteBuffer>
描述指定的像素格式与指定的预乘颜色列表
-
createByteIndexedInstance
public static PixelFormat<ByteBuffer> createByteIndexedInstance(int[] colors)
创建描述像素布局的PixelFormat
实例,其中像素存储为单个字节,表示索引到INT_ARGB
格式的非预乘颜色值的指定查找表中。可以使用以下示例代码对此格式的像素进行解码:
int pixel = array[rowstart + x] & 0xff; int argb = colors[pixel]; int alpha = ((argb >> 24) & 0xff); int red = ((argb >> 16) & 0xff); int green = ((argb >> 8) & 0xff); int blue = ((argb ) & 0xff);
- 参数
-
colors
-int[]
INT_ARGB
格式的32位颜色值的int[]
数组 - 结果
-
一个
PixelFormat<ByteBuffer>
描述指定的像素格式与指定的非预乘颜色列表
-
getType
public PixelFormat.Type getType()
返回表示由此PixelFormat
对象管理的像素的存储格式的枚举。- 结果
-
Type
枚举的像素
-
isWritable
public abstract boolean isWritable()
如果这个PixelFormat
对象可以将颜色信息转换为像素表示,则返回true。- 结果
-
如果这个
PixelFormat
可以将颜色转换为像素数据,PixelFormat
true
-
isPremultiplied
public abstract boolean isPremultiplied()
如果通过此格式解码(或编码)的颜色分量被alpha分量预乘以更有效的混合计算,则返回true。- 结果
- 如果被管理的颜色组件被alpha预乘,则为true
-
getArgb
public abstract int getArgb(T buf, int x, int y, int scanlineStride)
从指定坐标的缓冲区读取像素数据,并将其转换为INT_ARGB
格式的颜色的32位整数表示形式。 32位整数将包含从最高有效字节到最低有效字节的ARGB顺序的单独8位字段中的4种颜色分量。 缓冲器应该位于像素数据的开始处,使得buf.get(0)
将返回坐标(0, 0)
处的像素的像素信息。scanlineStride
参数定义了从一行开始处的像素数据到下一个较高Y坐标处紧随其后的行开始处的像素数据的距离。 通常,scanlineStride
与图像的宽度乘以每像素的数据元素数(在整数和索引格式的情况下为1,在字节格式的情况下为3或4),但某些图像可能在行之间进一步填充以进行对准或其他目的。可以使用以下示例代码从返回的整数中提取颜色分量:
int alpha = ((retval >> 24) & 0xff); int red = ((retval >> 16) & 0xff); int green = ((retval >> 8) & 0xff); int blue = ((retval ) & 0xff);
- 参数
-
buf
- 像素数据的缓冲区 -
x
- 要读取的像素的X坐标 -
y
- 要读取的像素的Y坐标 -
scanlineStride
- 缓冲区中相邻像素行开始之间的缓冲元素数 - 结果
-
a 32-bit value with the color of the pixel in a format similar to the
INT_ARGB
pixel format
-
-