Spec-Zone.ru › OpenJavaFX 17

Класс PixelFormat<T extends Buffer>

java.lang.Object
fx.scene.image.PixelFormat<T>
Type Parameters:
T - тип буфера, хранящего данные пикселей. Используются только ByteBuffer и IntBuffer.
Direct Known Subclasses:
WritablePixelFormat
public abstract class PixelFormat<T extends Buffer>
extends Object
Объект PixelFormat определяет расположение данных для пикселя заданного формата.
Since:
JavaFX 2.2

Краткое описание вложенных классов

Вложенные классы
Модификатор и тип Класс Описание
static class  PixelFormat.Type
Перечисление, описывающее формат хранения данных одного пикселя, управляемого объектом PixelFormat.

Краткое описание методов

Модификатор и тип Метод Описание
static PixelFormat<ByteBuffer> createByteIndexedInstance​(int[] colors)
Создает экземпляр PixelFormat, описывающий расположение пикселей в виде одиночных байтов, представляющих индекс в указанной таблице поиска **непреумноженных** значений цвета в формате INT_ARGB.
static PixelFormat<ByteBuffer> createByteIndexedPremultipliedInstance​(int[] colors)
Создает экземпляр PixelFormat, описывающий расположение пикселей в виде одиночных байтов, представляющих индекс в указанной таблице поиска **преумноженных** значений цвета в формате INT_ARGB_PRE.
abstract int getArgb​(T buf, int x, int y, int scanlineStride)
Считывает данные пикселей из буфера по заданным координатам и преобразует их в 32-битное целое представление цвета в формате INT_ARGB.
static WritablePixelFormat<ByteBuffer> getByteBgraInstance()
Возвращает экземпляр WritablePixelFormat, описывающий расположение пикселей в смежных байтах с компонентами **непреумноженными**, в порядке возрастания индекса: синий, зелёный, красный, альфа.
static WritablePixelFormat<ByteBuffer> getByteBgraPreInstance()
Возвращает экземпляр WritablePixelFormat, описывающий расположение пикселей в смежных байтах с компонентами **преумноженными**, в порядке возрастания индекса: синий, зелёный, красный, альфа.
static PixelFormat<ByteBuffer> getByteRgbInstance()
Возвращает экземпляр PixelFormat, описывающий расположение пикселей в смежных байтах с цветовыми компонентами в порядке возрастания индекса: красный, зелёный, синий.
static WritablePixelFormat<IntBuffer> getIntArgbInstance()
Возвращает экземпляр WritablePixelFormat, описывающий расположение пикселей в 32-битных целых числах с компонентами **непреумноженными**, в порядке, от старшего до младшего бита: альфа, красный, зелёный, синий.
static WritablePixelFormat<IntBuffer> getIntArgbPreInstance()
Возвращает экземпляр WritablePixelFormat, описывающий расположение пикселей в 32-битных целых числах с компонентами **преумноженными**, в порядке, от старшего до младшего бита: альфа, красный, зелёный, синий.
PixelFormat.Type getType()
Возвращает перечисление, представляющее формат хранения пикселей, управляемых этим объектом PixelFormat.
abstract boolean isPremultiplied()
Возвращает true, если цветовые компоненты, декодированные (или закодированные) этим форматом, предварительно умножены на компонент альфа для более эффективного вычисления смешивания.
abstract boolean isWritable()
Возвращает true, если этот объект PixelFormat может преобразовать информацию о цвете в представление пикселя.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание методов

getIntArgbInstance

public static WritablePixelFormat<IntBuffer> getIntArgbInstance()
Возвращает экземпляр, описывающий расположение пикселей, где пиксели хранятся в 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);
 
Возвращает:
экземпляр, описывающий указанный формат пикселей

getIntArgbPreInstance

public static WritablePixelFormat<IntBuffer> getIntArgbPreInstance()
Возвращает экземпляр, описывающий расположение пикселей, где пиксели хранятся в 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);
 
Возвращает:
экземпляр, описывающий указанный формат пикселей

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, если этот объект может преобразовывать цветную информацию в представление пикселя.
Возвращает:
true, если этот объект может преобразовывать цвета в данные пикселей

isPremultiplied

public abstract boolean isPremultiplied()
Возвращает true, если цветовые компоненты, декодированные (или закодированные) этим форматом, предварительно умножены на альфа-компонент для более эффективных расчётов смешивания.
Возвращает:
true, если управляемые цветовые компоненты предварительно умножены на альфа

getArgb

public abstract int getArgb(T buf, int x, int y, int scanlineStride)
Считывает данные пикселей из буфера по заданным координатам и преобразует их в 32-битное целое представление цвета в формате 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API