Класс PixelFormat<T extends Buffer>
- Type Parameters:
-
T- тип буфера, хранящего данные пикселей. Используются толькоByteBufferиIntBuffer.
- Direct Known Subclasses:
WritablePixelFormat
public abstract class PixelFormat<T extends Buffer> extends Object
PixelFormat определяет расположение данных для пикселя заданного формата.- Since:
- JavaFX 2.2
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static enum |
PixelFormat.Type |
Перечисление, описывающее формат хранения одного пикселя в массиве, управляемый объектом PixelFormat. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static PixelFormat<ByteBuffer> |
createByteIndexedInstance |
Создаёт экземпляр PixelFormat, описывающий расположение пикселей, хранящихся как одиночные байты, представляющие индекс в указанной таблице поиска не-преумноженных значений цвета в формате INT_ARGB. |
static PixelFormat<ByteBuffer> |
createByteIndexedPremultipliedInstance |
Создаёт экземпляр PixelFormat, описывающий расположение пикселей, хранящихся как одиночные байты, представляющие индекс в указанной таблице поиска преумноженных значений цвета в формате INT_ARGB_PRE. |
abstract int |
getArgb |
Считывает данные пикселя из буфера по указанным координатам и преобразует их в 32-битовое целое представление цвета в формате INT_ARGB. |
static WritablePixelFormat<ByteBuffer> |
getByteBgraInstance() |
Возвращает экземпляр WritablePixelFormat, описывающий расположение пикселей, хранящихся в смежных байтах, где не-преумноженные компоненты упорядочены по возрастанию индекса: синий, зелёный, красный, альфа. |
static WritablePixelFormat<ByteBuffer> |
getByteBgraPreInstance() |
Возвращает экземпляр WritablePixelFormat, описывающий расположение пикселей, хранящихся в смежных байтах, где преумноженные компоненты упорядочены по возрастанию индекса: синий, зелёный, красный, альфа. |
static PixelFormat<ByteBuffer> |
getByteRgbInstance() |
Возвращает экземпляр PixelFormat, описывающий расположение пикселей, хранящихся в смежных байтах, где компоненты цвета упорядочены по возрастанию индекса: красный, зелёный, синий. |
static WritablePixelFormat<IntBuffer> |
getIntArgbInstance() |
Возвращает экземпляр WritablePixelFormat, описывающий расположение пикселей, хранящихся в 32-битовых целых числах с не-преумноженными компонентами, упорядоченными по возрастанию индекса от MSb к LSb: альфа, красный, зелёный, синий. |
static WritablePixelFormat<IntBuffer> |
getIntArgbPreInstance() |
Возвращает экземпляр WritablePixelFormat, описывающий расположение пикселей, хранящихся в 32-битовых целых числах с преумноженными компонентами, упорядоченными по возрастанию индекса от MSb к LSb: альфа, красный, зелёный, синий. |
PixelFormat.Type |
getType() |
Возвращает перечисление, представляющее формат хранения пикселей, управляемый этим объектом PixelFormat. |
abstract boolean |
isPremultiplied() |
Возвращает true, если компоненты цвета, декодированные (или закодированные) этим форматом, преумножены на альфа-компонент для более эффективных вычислений смешивания. |
abstract boolean |
isWritable() |
Возвращает true, если этот объект PixelFormat может преобразовывать информацию о цвете в представление пикселя. |
Подробное описание методов
getIntArgbInstance
public static WritablePixelFormat<IntBuffer> getIntArgbInstance()
Пиксели в этом формате можно декодировать с помощью следующего примера кода:
int pixel = array[rowstart + x];
int alpha = ((pixel >> 24) & 0xff);
int red = ((pixel >> 16) & 0xff);
int green = ((pixel >> 8) & 0xff);
int blue = ((pixel >> ) & 0xff);
- Возвращает:
- объект, описывающий указанный формат пикселей
getIntArgbPreInstance
public static WritablePixelFormat<IntBuffer> getIntArgbPreInstance()
Пиксели в этом формате можно декодировать с помощью следующего примера кода:
int pixel = array[rowstart + x];
int alpha = ((pixel >> 24) & 0xff);
int red = ((pixel >> 16) & 0xff);
int green = ((pixel >> 8) & 0xff);
int blue = ((pixel >> ) & 0xff);
- Возвращает:
- объект, описывающий указанный формат пикселей
getByteBgraInstance
public static WritablePixelFormat<ByteBuffer> getByteBgraInstance()
Пиксели в этом формате можно декодировать с помощью следующего примера кода:
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);
- Возвращает:
- объект, описывающий указанный формат пикселей
getByteBgraPreInstance
public static WritablePixelFormat<ByteBuffer> getByteBgraPreInstance()
Пиксели в этом формате можно декодировать с помощью следующего примера кода:
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);
- Возвращает:
- объект, описывающий указанный формат пикселей
getByteRgbInstance
public static PixelFormat<ByteBuffer> getByteRgbInstance()
Пиксели в этом формате можно декодировать с помощью следующего примера кода:
int i = rowstart + x * 3;
int red = (array[i+0] & 0xff);
int green = (array[i+1] & 0xff);
int blue = (array[i+2] & 0xff);
- Возвращает:
- объект, описывающий указанный формат пикселей
createByteIndexedPremultipliedInstance
public static PixelFormat<ByteBuffer> createByteIndexedPremultipliedInstance(int[] colors)
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[]32-битовых цветовых значений в форматеINT_ARGB_PRE - Возвращает:
- объект, описывающий указанный формат пикселей со списком указанных преумноженных цветов
createByteIndexedInstance
public static PixelFormat<ByteBuffer> createByteIndexedInstance(int[] colors)
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[]32-битовых цветовых значений в форматеINT_ARGB - Возвращает:
- объект, описывающий указанный формат пикселей со списком указанных непреумноженных цветов
getType
public PixelFormat.Type getType()
- Возвращает:
- перечисление
Typeпикселей
isWritable
public abstract boolean isWritable()
- Возвращает:
- true, если этот объект может преобразовывать цвета в данные пикселей
isPremultiplied
public abstract boolean isPremultiplied()
- Возвращает:
- true, если управляемые цветовые компоненты предварительно умножены на альфа
getArgb
public abstract int getArgb(T buf, int x, int y, int scanlineStride)
INT_ARGB. 32-битовое целое число будет содержать 4 цветовых компонента в отдельных 8-битовых полях в порядке ARGB от старшего к младшему байту. Буфер должен быть позиционирован в начале данных пикселей таким образом, что 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- количество элементов буфера между началом смежных строк пикселей в буфере - Возвращает:
- 32-битовое значение с цветом пикселя в формате, аналогичном формату пикселей
INT_ARGB
© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.