Enum Class Bitmap.Format
- All Implemented Interfaces:
Serializable
,Comparable<Bitmap.Format>
,Constable
- Enclosing class:
Bitmap
Bitmap formats are divided into two classes: array and packed.
For array types, the components are listed in order of where they appear in memory. For example,
RGBA_8888
means that the pixel memory should be interpreted as an array of uint8 values,
and the R channel appears at the first uint8 value. This is the same naming convention as Vulkan.
For packed types, the first component appear in the least-significant bits. For example,
BGR_565
means that each pixel is packed as (b << 0) | (g << 5) | (r << 11)
,
an uint16 value. This is in the reverse order of Vulkan's naming convention.
Note that if bytes-per-pixel of a color type is 1, 2, 4, or 8, then ModernUI requires pixel memory to be aligned to bytes-per-pixel, otherwise it should be aligned to the size of basic data type.
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>>
-
Enum Constant Summary
Enum ConstantDescriptionRGB, with alpha, four channels, 8-bit unsigned per channel.Alpha mask, one channel, 16-bit unsigned per channel.Alpha mask, one channel, 8-bit unsigned per channel.Alpha mask, one channel, 16-bit half float per channel.RGB, with alpha, four channels, 8-bit unsigned per channel.RGB, packed three channels, 16-bit unsigned per pixel.RGB, with alpha, packed four channels, 32-bit unsigned per pixel.RGB, with alpha, four channels, 8-bit unsigned per channel.RGB, with alpha, packed four channels, 32-bit unsigned per pixel.Unsupported, DO NOT USE.Grayscale, one channel, 8-bit unsigned per channel.Unsupported, DO NOT USE.Grayscale, with alpha, two channels, 8-bit unsigned per channel.Unsupported, DO NOT USE.Unsupported, DO NOT USE.Red, one channel, 16-bit unsigned per channel.Red, one channel, 8-bit unsigned per channel.Red, one channel, 16-bit half float per channel.RG, two channels, 16-bit unsigned per channel.RG, two channels, 8-bit unsigned per channel.RG, two channels, 16-bit half float per channel.Unsupported, DO NOT USE.RGB, three channels, 8-bit unsigned per channel.Unsupported, DO NOT USE.RGB, with alpha, packed four channels, 32-bit unsigned per pixel.RGB, with alpha, four channels, 16-bit unsigned per channel.RGB, with alpha, four channels, 8-bit unsigned per channel.RGB, with alpha, packed four channels, 32-bit unsigned per pixel.RGB, with alpha, four channels, 32-bit half float per channel.RGB, with alpha, four channels, 32-bit floating-point per channel.RGB, four channels, 8-bit unsigned per channel. -
Method Summary
Modifier and TypeMethodDescriptionint
int
Returns the number of channels.int
The source (in CPU memory) color type of this format.boolean
hasAlpha()
Does this format have alpha channel?boolean
Is this format 32-bit per channel and encoded as float?boolean
Is this format 16-bit per channel and encoded as unsigned short?boolean
Is this format 8-bit per channel and encoded as unsigned byte?static Bitmap.Format
Returns the enum constant of this class with the specified name.static Bitmap.Format[]
values()
Returns an array containing the constants of this enum class, in the order they are declared.
-
Enum Constant Details
-
GRAY_8
Grayscale, one channel, 8-bit unsigned per channel. Basic data type: byte.0 1 byte | gray |
-
GRAY_ALPHA_88
Grayscale, with alpha, two channels, 8-bit unsigned per channel. Basic data type: byte.0 1 2 byte | gray | alpha |
-
RGB_888
RGB, three channels, 8-bit unsigned per channel. Basic data type: byte.0 1 2 3 byte | r | g | b |
Because the bpp of this format is not a power of 2, operations on this format will be slower. -
RGBA_8888
RGB, with alpha, four channels, 8-bit unsigned per channel. Basic data type: byte.0 1 2 3 4 byte | r | g | b | a |
-
GRAY_16
Unsupported, DO NOT USE.0 2 byte | gray |
-
GRAY_ALPHA_1616
Unsupported, DO NOT USE.0 2 4 byte | gray | alpha |
-
RGB_161616
Unsupported, DO NOT USE.0 2 4 6 byte | r | g | b |
-
RGBA_16161616
RGB, with alpha, four channels, 16-bit unsigned per channel. Basic data type: short.0 2 4 6 8 byte | r | g | b | a |
-
GRAY_F32
Unsupported, DO NOT USE. -
GRAY_ALPHA_F32
Unsupported, DO NOT USE. -
RGB_F32
Unsupported, DO NOT USE. -
RGBA_F32
RGB, with alpha, four channels, 32-bit floating-point per channel. Basic data type: float.0 4 8 12 16 byte | r | g | b | a |
-
ALPHA_8
Alpha mask, one channel, 8-bit unsigned per channel. Basic data type: byte.0 1 byte | alpha |
-
R_8
Red, one channel, 8-bit unsigned per channel. Basic data type: byte.0 1 byte | r |
-
RG_88
RG, two channels, 8-bit unsigned per channel. Basic data type: byte.0 1 2 byte | r | g |
-
ALPHA_16
Alpha mask, one channel, 16-bit unsigned per channel. Basic data type: short.0 2 byte | alpha |
-
R_16
Red, one channel, 16-bit unsigned per channel. Basic data type: short.0 2 byte | r |
-
RG_1616
RG, two channels, 16-bit unsigned per channel. Basic data type: short.0 2 4 byte | r | g |
-
ALPHA_F16
Alpha mask, one channel, 16-bit half float per channel. Basic data type: short.0 2 byte | alpha |
-
R_F16
Red, one channel, 16-bit half float per channel. Basic data type: short.0 2 byte | r |
-
RG_F16
RG, two channels, 16-bit half float per channel. Basic data type: short.0 2 4 byte | r | g |
-
RGBA_F16
RGB, with alpha, four channels, 32-bit half float per channel. Basic data type: short.0 2 4 6 8 byte | r | g | b | a |
-
BGR_565
RGB, packed three channels, 16-bit unsigned per pixel. Basic data type: short.0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 bit | b | g | r |
short color = (B invalid input: '&' 0x1f) | (G invalid input: '&' 0x3f) invalid input: '<'invalid input: '<' 5 | (R invalid input: '&' 0x1f) invalid input: '<'invalid input: '<' 11;
-
RGBA_1010102
RGB, with alpha, packed four channels, 32-bit unsigned per pixel. Basic data type: int.0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 bit | r | g | b | a|
int color = (R invalid input: '&' 0x3ff) | (G invalid input: '&' 0x3ff) invalid input: '<'invalid input: '<' 10 | (B invalid input: '&' 0x3ff) invalid input: '<'invalid input: '<' 20 | (A invalid input: '&' 0x3) invalid input: '<'invalid input: '<' 30;
-
BGRA_1010102
RGB, with alpha, packed four channels, 32-bit unsigned per pixel. Basic data type: int.0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 bit | b | g | r | a|
int color = (B invalid input: '&' 0x3ff) | (G invalid input: '&' 0x3ff) invalid input: '<'invalid input: '<' 10 | (R invalid input: '&' 0x3ff) invalid input: '<'invalid input: '<' 20 | (A invalid input: '&' 0x3) invalid input: '<'invalid input: '<' 30;
-
RGBX_8888
-
BGRA_8888
RGB, with alpha, four channels, 8-bit unsigned per channel. Basic data type: byte.0 1 2 3 4 byte | b | g | r | a |
-
ABGR_8888
RGB, with alpha, four channels, 8-bit unsigned per channel. Basic data type: byte.0 1 2 3 4 byte | a | b | g | r |
-
ARGB_8888
RGB, with alpha, four channels, 8-bit unsigned per channel. Basic data type: byte.0 1 2 3 4 byte | a | r | g | b |
-
RGBA_8888_PACK32
RGB, with alpha, packed four channels, 32-bit unsigned per pixel. Basic data type: int.0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 bit | r | g | b | a |
int color = (R invalid input: '&' 0xff) | (G invalid input: '&' 0xff) invalid input: '<'invalid input: '<' 8 | (B invalid input: '&' 0xff) invalid input: '<'invalid input: '<' 16 | (A invalid input: '&' 0xff) invalid input: '<'invalid input: '<' 24;
On little-endian machine, this is the same asRGBA_8888
. On big-endian machine, this is the same asABGR_8888
. -
BGRA_8888_PACK32
RGB, with alpha, packed four channels, 32-bit unsigned per pixel. Basic data type: int.0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 bit | b | g | r | a |
int color = (B invalid input: '&' 0xff) | (G invalid input: '&' 0xff) invalid input: '<'invalid input: '<' 8 | (R invalid input: '&' 0xff) invalid input: '<'invalid input: '<' 16 | (A invalid input: '&' 0xff) invalid input: '<'invalid input: '<' 24;
On little-endian machine, this is the same asBGRA_8888
. On big-endian machine, this is the same asARGB_8888
. This is actually used for int values that marked asColorInt
.
-
-
Method Details
-
values
Returns an array containing the constants of this enum class, in the order they are declared.- Returns:
- an array containing the constants of this enum class, in the order they are declared
-
valueOf
Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)- Parameters:
name
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException
- if this enum class has no constant with the specified nameNullPointerException
- if the argument is null
-
getChannels
public int getChannels()Returns the number of channels. -
getColorType
public int getColorType()The source (in CPU memory) color type of this format.RGB is special, it's 3 bytes per pixel in CPU memory, but 4 bytes per pixel in GPU memory (implicitly).
- See Also:
-
getBytesPerPixel
public int getBytesPerPixel() -
isChannelU8
public boolean isChannelU8()Is this format 8-bit per channel and encoded as unsigned byte? -
isChannelU16
public boolean isChannelU16()Is this format 16-bit per channel and encoded as unsigned short? -
isChannelHDR
public boolean isChannelHDR()Is this format 32-bit per channel and encoded as float? -
hasAlpha
public boolean hasAlpha()Does this format have alpha channel?
-