Spec-Zone.ru › OpenJavaFX 21

Класс PixelBuffer<T extends Buffer>

java.lang.Object
javafx.scene.image.PixelBuffer<T>
Type Parameters:
T - тип данных Buffer, хранящих пиксельную информацию. Поддерживаются только ByteBuffer и IntBuffer.
public class PixelBuffer<T extends Buffer> extends Object
Класс PixelBuffer представляет пиксельные данные, сформированные из java.nio.Buffer, предоставленного приложением. WritableImage может напрямую использовать этот PixelBuffer без копирования пиксельных данных. Этот PixelBuffer может быть совместно использован несколькими WritableImage. Пиксельные данные должны храниться либо в IntBuffer с помощью PixelFormat типа INT_ARGB_PRE, либо в ByteBuffer с помощью PixelFormat типа BYTE_BGRA_PRE. При обновлении Buffer с помощью метода PixelBuffer.updateBuffer, все WritableImage, созданные с использованием этого PixelBuffer, перерисовываются.

Пример кода создания PixelBuffer:

 // Creating a PixelBuffer using BYTE_BGRA_PRE pixel format.
 ByteBuffer byteBuffer = ByteBuffer.allocateDirect(width * height * 4);
 PixelFormat<ByteBuffer> pixelFormat = PixelFormat.getByteBgraPreInstance();
 PixelBuffer<ByteBuffer> pixelBuffer = new PixelBuffer<>(width, height, byteBuffer, pixelFormat);
 Image img = new WritableImage(pixelBuffer);

 // Creating a PixelBuffer using INT_ARGB_PRE pixel format.
 IntBuffer intBuffer = IntBuffer.allocate(width * height);
 PixelFormat<IntBuffer> pixelFormat = PixelFormat.getIntArgbPreInstance();
 PixelBuffer<IntBuffer> pixelBuffer = new PixelBuffer<>(width, height, intBuffer, pixelFormat);
 Image img = new WritableImage(pixelBuffer);
Since:
13
See Also:
  • WritableImage(PixelBuffer)

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

Конструктор Описание
PixelBuffer(int width, int height, T buffer, PixelFormat<T> pixelFormat)
Создает PixelBuffer с использованием указанных Buffer и PixelFormat.

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

Модификатор и тип Метод Описание
T getBuffer()
Возвращает buffer этого PixelBuffer.
int getHeight()
Возвращает height этого PixelBuffer.
PixelFormat<T> getPixelFormat()
Возвращает PixelFormat этого PixelBuffer.
int getWidth()
Возвращает width этого PixelBuffer.
void updateBuffer(Callback<PixelBuffer<T>,Rectangle2D> callback)
Вызывает указанный метод Callback и обновляет область изменения всех WritableImage, созданных с использованием этого PixelBuffer.

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

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

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

PixelBuffer

public PixelBuffer(int width, int height, T buffer, PixelFormat<T> pixelFormat)
Создаёт буфер пикселей (PixelBuffer) с указанными Buffer и PixelFormat. Тип указанного PixelFormat должен быть либо PixelFormat.Type.INT_ARGB_PRE, либо PixelFormat.Type.BYTE_BGRA_PRE.

Конструктор не выделяет память для хранения данных пикселей. Приложение должно предоставить буфер с достаточной памятью для сочетания размеров (width, height) и типа PixelFormat. Для PixelFormat.Type.INT_ARGB_PRE требуется буфер с минимальной ёмкостью width * height, а для PixelFormat.Type.BYTE_BGRA_PRE — буфер с минимальной ёмкостью width * height * 4.

Параметры:
width - ширина в пикселях этого PixelBuffer
height - высота в пикселях этого PixelBuffer
buffer - буфер, хранящий данные пикселей
pixelFormat - формат пикселей в buffer
Исключения:
IllegalArgumentException - если либо width, либо height отрицательны или равны нулю, или если тип pixelFormat не поддерживается, или если у buffer недостаточно памяти, или если тип buffer и pixelFormat не совпадают
NullPointerException - если buffer или pixelFormat равны null

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

getBuffer

public T getBuffer()
Возвращает буфер (buffer) этого буфера пикселей (PixelBuffer).
Возвращает:
буфер (buffer) этого буфера пикселей (PixelBuffer)

getWidth

public int getWidth()
Возвращает ширину (width) этого буфера пикселей (PixelBuffer).
Возвращает:
ширину (width) этого буфера пикселей (PixelBuffer)

getHeight

public int getHeight()
Возвращает высоту (height) этого буфера пикселей (PixelBuffer).
Возвращает:
высоту (height) этого буфера пикселей (PixelBuffer)

getPixelFormat

public PixelFormat<T> getPixelFormat()
Возвращает формат пикселей (PixelFormat) этого буфера пикселей (PixelBuffer).
Возвращает:
формат пикселей (PixelFormat) этого буфера пикселей (PixelBuffer)

updateBuffer

public void updateBuffer(Callback<PixelBuffer<T>,Rectangle2D> callback)
Вызывает указанный метод Callback и обновляет грязную область всех буферов пикселей (WritableImage), которые были созданы с помощью этого буфера пикселей (PixelBuffer). Метод Callback должен обновить буфер и вернуть Rectangle2D, который охватывает грязную область, или вернуть null, чтобы указать, что весь буфер грязный.

Этот метод должен вызываться в потоке JavaFX Application.

Пример кода, демонстрирующий использование этого метода:

 Callback<PixelBuffer<ByteBuffer>, Rectangle2D> callback = pixelBuffer -> {
     ByteBuffer buffer = pixelBuffer.getBuffer();
     // Update the buffer.
     return new Rectangle2D(x, y, dirtyWidth, dirtyHeight);
 };
 pixelBuffer.updateBuffer(callback);
Параметры:
callback - метод Callback, который обновляет буфер
Исключения:
IllegalStateException - если этот метод вызывается в потоке, отличном от потока JavaFX Application.
NullPointerException - если callback является null

© 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