Класс PixelFormat<T extends Buffer>
- Параметры типа:
-
T- тип буфера, хранящего данные пикселей. Используются толькоByteBufferиIntBuffer.
- Прямые известные подклассы:
WritablePixelFormat
public abstract class PixelFormat<T extends Buffer> extends Object
PixelFormat определяет структуру данных для пикселя заданного формата.- С:
- JavaFX 2.2
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static enum |
PixelFormat.Type |
Перечисление, описывающее формат хранения одного пикселя в массиве, управляемом PixelFormat. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static PixelFormat |
createByteIndexedInstance |
Создаёт экземпляр PixelFormat, описывающий структуру пикселя с данными, хранящимися как байты, представляющие индекс в указанной таблице соответствия непреумноженных значений цвета в формате INT_ARGB. |
static PixelFormat |
createByteIndexedPremultipliedInstance |
Создаёт экземпляр PixelFormat, описывающий структуру пикселя с данными, хранящимися как байты, представляющие индекс в указанной таблице соответствия преумноженных значений цвета в формате INT_ARGB_PRE. |
abstract int |
getArgb |
Считывает данные пикселя из буфера по заданным координатам и преобразует их в 32-битовое целое значение цвета в формате INT_ARGB. |
static WritablePixelFormat |
getByteBgraInstance() |
Возвращает экземпляр WritablePixelFormat, описывающий структуру пикселя с данными, хранящимися в смежных байтах, где непреумноженные компоненты расположены в порядке возрастания индекса: синий, зелёный, красный, альфа. |
static WritablePixelFormat |
getByteBgraPreInstance() |
Возвращает экземпляр WritablePixelFormat, описывающий структуру пикселя с данными, хранящимися в смежных байтах, где преумноженные компоненты расположены в порядке возрастания индекса: синий, зелёный, красный, альфа. |
static PixelFormat |
getByteRgbInstance() |
Возвращает экземпляр PixelFormat, описывающий структуру пикселя с данными, хранящимися в смежных байтах, где компоненты цвета расположены в порядке возрастания индекса: красный, зелёный, синий. |
static WritablePixelFormat |
getIntArgbInstance() |
Возвращает экземпляр WritablePixelFormat, описывающий структуру пикселя, хранящегося в 32-битовом целом числе с непреумноженными компонентами в порядке следования от старшего к младшему биту: альфа, красный, зелёный, синий. |
static WritablePixelFormat |
getIntArgbPreInstance() |
Возвращает экземпляр WritablePixelFormat, описывающий структуру пикселя, хранящегося в 32-битовом целом числе с преумноженными компонентами в порядке следования от старшего к младшему биту: альфа, красный, зелёный, синий. |
PixelFormat.Type |
getType() |
Возвращает перечисление, представляющее формат хранения пикселей, управляемый этим объектом PixelFormat. |
abstract boolean |
isPremultiplied() |
Возвращает true, если цветовые компоненты, декодированные (или закодированные) этим форматом, умножены на компонент альфа для более эффективных вычислений смешивания. |
abstract boolean |
isWritable() |
Возвращает true, если этот объект PixelFormat может преобразовать информацию о цвете в представление пикселя. |
Подробное описание методов
getIntArgbInstance
public static WritablePixelFormat<IntBuffer> getIntArgbInstance()
WritablePixelFormat, описывающий макет пикселей, где пиксели хранятся в 32-битных целых числах с непреумноженными компонентами, упорядоченными от MSb к LSb: альфа, красный, зелёный, синий. Пиксели в этом формате можно декодировать, используя следующий пример кода:
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: альфа, красный, зелёный, синий. Пиксели в этом формате можно декодировать, используя следующий пример кода:
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, описывающий макет пикселей, где пиксели хранятся в смежных байтах с непреумноженными компонентами, упорядоченными по возрастанию индекса: синий, зелёный, красный, альфа. Пиксели в этом формате можно декодировать, используя следующий пример кода:
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, описывающий макет пикселей, где пиксели хранятся в смежных байтах с преумноженными компонентами, упорядоченными по возрастанию индекса: синий, зелёный, красный, альфа. Пиксели в этом формате можно декодировать, используя следующий пример кода:
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[]из 32-битных значений цвета в форматеINT_ARGB_PRE - Возвращает:
- экземпляр
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[]из 32-битных значений цвета в форматеINT_ARGB - Возвращает:
- экземпляр
PixelFormat<ByteBuffer>, описывающий указанный формат пикселей со списком указанных непреумноженных цветов
getType
public PixelFormat.Type getType()
PixelFormat.- Возвращает:
- перечисление
Typeпикселей
isWritable
public abstract boolean isWritable()
PixelFormat может преобразовать информацию о цвете в представление пикселя.- Возвращает:
- true, если этот объект
PixelFormatможет преобразовать цвета в данные пикселей
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.