Spec-Zone.ru › OpenJavaFX 24

Класс PixelBuffer<T extends Buffer>

java.lang.Object
fx.scene.image.PixelBuffer<T>
Параметры типа:
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);
С:
13
См. также:
  • 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 требует IntBuffer с минимальной емкостью width * height, а PixelFormat.Type.BYTE_BGRA_PRE требует ByteBuffer с минимальной емкостью 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 Thread.

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

 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 Thread.
NullPointerException - если callback является null

Сообщить об ошибке или предложить улучшение
Copyright © 2008, 2025, Oracle и/или его филиалы. Все права защищены.

© 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