- java.lang.Object
-
- javafx.scene.image.PixelFormat<T>
-
- Прямые известные подклассы:
WritablePixelFormat
public abstract class PixelFormat<T extends Buffer> extends Object
Объект типаPixelFormatопределяет структуру данных для пикселя заданного формата.- С момента:
- JavaFX 2.2
-
Краткое описание вложенных классов
Вложенные классы Модификатор и тип Класс Описание static classPixelFormat.TypeПеречисление, описывающее формат хранения одного пикселя в массиве, управляемом объектомPixelFormat.
-
Краткое описание методов
Все методыСтатические методыМетоды экземпляровАбстрактные методыКонкретные методы Модификатор и тип Метод Описание static PixelFormat<ByteBuffer>createByteIndexedInstance(int[] colors)Создает экземплярPixelFormat, описывающий расположение пикселей в виде одиночных байтов, представляющих индекс в указанной таблице поиска **непреумноженных** цветовых значений в форматеINT_ARGB.static PixelFormat<ByteBuffer>createByteIndexedPremultipliedInstance(int[] colors)Создает экземплярPixelFormat, описывающий расположение пикселей в виде одиночных байтов, представляющих индекс в указанной таблице поиска **преумноженных** цветовых значений в форматеINT_ARGB_PRE.abstract intgetArgb(T buf, int x, int y, int scanlineStride)Считывает данные пикселя из буфера по заданным координатам и преобразует их в 32-битовое целое представление цвета в форматеINT_ARGB.PixelFormat.TypegetType()Возвращает перечисление, представляющее формат хранения пикселей, управляемых этим объектомPixelFormat.abstract booleanisPremultiplied()Возвращает true, если цветовые компоненты, декодируемые (или кодируемые) этим форматом, умножены на альфа-компонент для более эффективных расчётов смешивания.abstract booleanisWritable()Возвращает 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()
Возвращает true, если этот объектPixelFormatможет преобразовать информацию о цвете в представление пикселя.- Возвращает:
- true, если этот объект
PixelFormatможет преобразовывать цвета в данные пикселей
-
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.