Spec-Zone.ru › OpenJDK 27

Класс PixelGrabber

java.lang.Object
java.awt.image.PixelGrabber
Все реализуемые интерфейсы:
ImageConsumer
public class PixelGrabber extends Object implements ImageConsumer
Класс PixelGrabber реализует ImageConsumer, который можно подключить к объекту Image или ImageProducer для получения части пикселей этого изображения. Пример:

public void handlesinglepixel(int x, int y, int pixel) {
     int alpha = (pixel >> 24) & 0xff;
     int red   = (pixel >> 16) & 0xff;
     int green = (pixel >>  8) & 0xff;
     int blue  = (pixel      ) & 0xff;
     // Deal with the pixel as necessary...
}

public void handlepixels(Image img, int x, int y, int w, int h) {
     int[] pixels = new int[w * h];
     PixelGrabber pg = new PixelGrabber(img, x, y, w, h, pixels, 0, w);
     try {
         pg.grabPixels();
     } catch (InterruptedException e) {
         System.err.println("interrupted waiting for pixels!");
         return;
     }
     if ((pg.getStatus() & ImageObserver.ABORT) != 0) {
         System.err.println("image fetch aborted or errored");
         return;
     }
     for (int j = 0; j < h; j++) {
         for (int i = 0; i < w; i++) {
             handlesinglepixel(x+i, y+j, pixels[j * w + i]);
         }
     }
}

См. также:
  • ColorModel.getRGBdefault()

Краткое описание полей

Поля, объявленные в интерфейсе ImageConsumer

COMPLETESCANLINES, IMAGEABORTED, IMAGEERROR, RANDOMPIXELORDER, SINGLEFRAME, SINGLEFRAMEDONE, SINGLEPASS, STATICIMAGEDONE, TOPDOWNLEFTRIGHT
Модификатор и тип Поле Описание
static final int COMPLETESCANLINES
Пиксели будут передаваться полными строками сканирования (или их кратными) за один раз.
static final int IMAGEABORTED
Процесс создания изображения был намеренно прерван.
static final int IMAGEERROR
При создании изображения произошла ошибка.
static final int RANDOMPIXELORDER
Пиксели будут передаваться в случайном порядке.
static final int SINGLEFRAME
Изображение содержит один статический кадр.
static final int SINGLEFRAMEDONE
Один кадр изображения готов, но предстоит передать другие кадры.
static final int SINGLEPASS
Пиксели будут переданы за один проход.
static final int STATICIMAGEDONE
Изображение готово, больше пикселей или кадров передаваться не будет.
static final int TOPDOWNLEFTRIGHT
Пиксели будут передаваться сверху вниз и слева направо.

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

Конструктор Описание
PixelGrabber(ImageProducer ip, int x, int y, int w, int h, int[] pix, int off, int scansize)
Создает объект PixelGrabber для извлечения прямоугольной области пикселей (x, y, w, h) из изображения, создаваемого указанным ImageProducer, в заданный массив.
PixelGrabber(Image img, int x, int y, int w, int h, boolean forceRGB)
Создает объект PixelGrabber для извлечения прямоугольной области пикселей (x, y, w, h) из указанного изображения.
PixelGrabber(Image img, int x, int y, int w, int h, int[] pix, int off, int scansize)
Создает объект PixelGrabber для извлечения прямоугольной области пикселей (x, y, w, h) из указанного изображения в заданный массив.

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

Модификатор и тип Метод Описание
void abortGrabbing()
Запрашивает у PixelGrabber прерывание получения изображения.
ColorModel getColorModel()
Возвращает ColorModel пикселей, хранящихся в массиве.
int getHeight()
Возвращает высоту буфера пикселей (с учетом высоты изображения).
Object getPixels()
Возвращает буфер пикселей.
int getStatus()
Возвращает состояние пикселей.
int getWidth()
Возвращает ширину буфера пикселей (с учетом ширины изображения).
boolean grabPixels()
Запрашивает у Image или ImageProducer начало передачи пикселей и ожидает передачи всех пикселей в интересующей прямоугольной области.
boolean grabPixels(long ms)
Запрашивает у Image или ImageProducer начало передачи пикселей и ожидает передачи всех пикселей в интересующей прямоугольной области либо истечения указанного времени ожидания.
void imageComplete(int status)
Метод imageComplete является частью API ImageConsumer, который этот класс должен реализовать для получения пикселей.
void setColorModel(ColorModel model)
Метод setColorModel является частью API ImageConsumer, который этот класс должен реализовать для получения пикселей.
void setDimensions(int width, int height)
Метод setDimensions является частью API ImageConsumer, который этот класс должен реализовать для получения пикселей.
void setHints(int hints)
Метод setHints является частью API ImageConsumer, который этот класс должен реализовать для получения пикселей.
void setPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, byte[] pixels, int srcOff, int srcScan)
Метод setPixels является частью API ImageConsumer, который этот класс должен реализовать для получения пикселей.
void setPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, int[] pixels, int srcOff, int srcScan)
Метод setPixels является частью API ImageConsumer, который этот класс должен реализовать для получения пикселей.
void setProperties(Hashtable<?,?> props)
Метод setProperties является частью API ImageConsumer, который этот класс должен реализовать для получения пикселей.
void startGrabbing()
Запрашивает у PixelGrabber начало получения пикселей.
int status()
Возвращает состояние пикселей.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удален в будущей версии.
Финализация устарела и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt, либо истечения определенного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt, либо истечения определенного промежутка реального времени.

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

PixelGrabber

public PixelGrabber(Image img, int x, int y, int w, int h, int[] pix, int off, int scansize)
Создаёт объект PixelGrabber для захвата прямоугольной области пикселей (x, y, w, h) из указанного изображения в заданный массив. Пиксели сохраняются в массиве с использованием стандартной модели цвета RGB. Данные RGB для пикселя (i, j), где (i, j) находится внутри прямоугольника (x, y, w, h), сохраняются в массиве по адресу pix[(j - y) * scansize + (i - x) + off].
Параметры:
img — изображение, из которого нужно получить пиксели
x — координата x верхнего левого угла прямоугольной области пикселей, которую нужно получить из изображения, относительно стандартного (немасштабированного) размера изображения
y — координата y верхнего левого угла прямоугольной области пикселей, которую нужно получить из изображения
w — ширина прямоугольной области пикселей, которую нужно получить
h — высота прямоугольной области пикселей, которую нужно получить
pix — массив целых чисел для хранения пикселей RGB, полученных из изображения
off — смещение в массиве, по которому нужно сохранить первый пиксель
scansize — расстояние между соседними строками пикселей в массиве
См. также:
  • ColorModel.getRGBdefault()

PixelGrabber

public PixelGrabber(ImageProducer ip, int x, int y, int w, int h, int[] pix, int off, int scansize)
Создаёт объект PixelGrabber для захвата прямоугольной области пикселей (x, y, w, h) из изображения, создаваемого указанным ImageProducer, в заданный массив. Пиксели сохраняются в массиве с использованием стандартной модели цвета RGB. Данные RGB для пикселя (i, j), где (i, j) находится внутри прямоугольника (x, y, w, h), сохраняются в массиве по адресу pix[(j - y) * scansize + (i - x) + off].
Параметры:
ip — ImageProducer, создающий изображение, из которого нужно получить пиксели
x — координата x верхнего левого угла прямоугольной области пикселей, которую нужно получить из изображения, относительно стандартного (немасштабированного) размера изображения
y — координата y верхнего левого угла прямоугольной области пикселей, которую нужно получить из изображения
w — ширина прямоугольной области пикселей, которую нужно получить
h — высота прямоугольной области пикселей, которую нужно получить
pix — массив целых чисел для хранения пикселей RGB, полученных из изображения
off — смещение в массиве, по которому нужно сохранить первый пиксель
scansize — расстояние между соседними строками пикселей в массиве
См. также:
  • ColorModel.getRGBdefault()

PixelGrabber

public PixelGrabber(Image img, int x, int y, int w, int h, boolean forceRGB)
Создаёт объект PixelGrabber для захвата прямоугольной области пикселей (x, y, w, h) из указанного изображения. Пиксели накапливаются в исходной модели цвета, если при каждом вызове setPixels используется одна и та же модель цвета; в противном случае пиксели накапливаются в стандартной модели цвета RGB. Если параметр forceRGB имеет значение true, пиксели в любом случае накапливаются в стандартной модели цвета RGB. В обоих случаях PixelGrabber выделяет буфер для хранения пикселей. Если (w < 0) или (h < 0), по умолчанию будут использоваться оставшиеся ширина и высота исходных данных, когда эта информация станет доступна.
Параметры:
img — изображение, из которого нужно получить данные изображения
x — координата x верхнего левого угла прямоугольной области пикселей, которую нужно получить из изображения, относительно стандартного (немасштабированного) размера изображения
y — координата y верхнего левого угла прямоугольной области пикселей, которую нужно получить из изображения
w — ширина прямоугольной области пикселей, которую нужно получить
h — высота прямоугольной области пикселей, которую нужно получить
forceRGB — true, если пиксели всегда следует преобразовывать в стандартную модель цвета RGB

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

startGrabbing

public void startGrabbing()
Запрашивает у PixelGrabber начало получения пикселей.

abortGrabbing

public void abortGrabbing()
Запрашивает у PixelGrabber отмену получения изображения.

grabPixels

public boolean grabPixels() throws InterruptedException
Запрашивает у Image или ImageProducer начало передачи пикселей и ожидает передачи всех пикселей в интересующей прямоугольной области.
Возвращает:
true, если пиксели удалось получить; false при отмене, ошибке или истечении времени ожидания
Вызывает исключение:
InterruptedException — другой поток прервал выполнение этого потока.

grabPixels

public boolean grabPixels(long ms) throws InterruptedException
Запрашивает у Image или ImageProducer начало передачи пикселей и ожидает передачи всех пикселей в интересующей прямоугольной области либо истечения указанного времени ожидания. В зависимости от значения ms этот метод работает следующим образом:
  • Если ms == 0, метод ожидает передачи всех пикселей.
  • Если ms > 0, метод ожидает передачи всех пикселей до истечения времени ожидания.
  • Если ms < 0, метод возвращает true, если получены все пиксели, и false в противном случае, не ожидая их получения.
Параметры:
ms — количество миллисекунд ожидания получения пикселей изображения до истечения времени ожидания
Возвращает:
true, если пиксели удалось получить; false при отмене, ошибке или истечении времени ожидания
Вызывает исключение:
InterruptedException — другой поток прервал выполнение этого потока.

getStatus

public int getStatus()
Возвращает состояние пикселей. Возвращаются флаги ImageObserver, указывающие, какая информация о пикселях доступна.
Возвращает:
побитовое ИЛИ всех соответствующих флагов ImageObserver
См. также:
  • ImageObserver

getWidth

public int getWidth()
Возвращает ширину буфера пикселей (с учётом ширины изображения). Если ширина прямоугольной области пикселей не была указана, эта информация станет доступна только после получения размеров изображения.
Возвращает:
окончательную ширину буфера пикселей или -1, если ширина ещё неизвестна
См. также:
  • getStatus()

getHeight

public int getHeight()
Возвращает высоту буфера пикселей (с учётом высоты изображения). Если ширина прямоугольной области пикселей не была указана, эта информация станет доступна только после получения размеров изображения.
Возвращает:
окончательную высоту буфера пикселей или -1, если высота ещё неизвестна
См. также:
  • getStatus()

getPixels

public Object getPixels()
Возвращает буфер пикселей. Если объект PixelGrabber был создан без явно заданного буфера пикселей, этот метод будет возвращать null, пока не станут известны размер и формат данных изображения. Поскольку PixelGrabber может в любой момент перейти к накоплению данных в стандартной модели цвета RGB, если исходное изображение использует для передачи данных несколько моделей цвета, возвращаемый этим методом объект массива может меняться до завершения захвата изображения.
Возвращает:
массив байтов или массив целых чисел
См. также:
  • getStatus()
  • setPixels(int, int, int, int, ColorModel, byte[], int, int)
  • setPixels(int, int, int, int, ColorModel, int[], int, int)

getColorModel

public ColorModel getColorModel()
Возвращает модель цвета для пикселей, сохранённых в массиве. Если объект PixelGrabber был создан с явно заданным буфером пикселей, этот метод всегда возвращает стандартную модель цвета RGB; в противном случае он может возвращать null, пока не станет известна модель цвета, используемая ImageProducer. Поскольку PixelGrabber может в любой момент перейти к накоплению данных в стандартной модели цвета RGB, если исходное изображение использует для передачи данных несколько моделей цвета, объект модели цвета, возвращаемый этим методом, может меняться до завершения захвата изображения и может не соответствовать ни одному из объектов модели цвета, использованных ImageProducer для передачи пикселей.
Возвращает:
объект модели цвета, используемый для хранения пикселей
См. также:
  • getStatus()
  • ColorModel.getRGBdefault()
  • setColorModel(ColorModel)

setDimensions

public void setDimensions(int width, int height)
Метод setDimensions является частью API ImageConsumer, который этот класс должен реализовать для получения пикселей.

Примечание. Этот метод предназначен для вызова ImageProducer изображения, пиксели которого захватываются. Разработчикам, использующим этот класс для получения пикселей изображения, следует избегать прямого вызова этого метода, поскольку это может привести к проблемам при получении запрошенных пикселей.

Указан в:
setDimensions в интерфейсе ImageConsumer
Параметры:
width — ширина измерения
height — высота измерения

setHints

public void setHints(int hints)
Метод setHints является частью API ImageConsumer, который этот класс должен реализовать для получения пикселей.

Примечание. Этот метод предназначен для вызова ImageProducer изображения, пиксели которого захватываются. Разработчикам, использующим этот класс для получения пикселей изображения, следует избегать прямого вызова этого метода, поскольку это может привести к проблемам при получении запрошенных пикселей.

Указан в:
setHints в интерфейсе ImageConsumer
Параметры:
hints — набор подсказок, используемых для обработки пикселей

setProperties

public void setProperties(Hashtable<?,?> props)
Метод setProperties является частью API ImageConsumer, который этот класс должен реализовать для получения пикселей.

Примечание. Этот метод предназначен для вызова ImageProducer изображения, пиксели которого захватываются. Разработчикам, использующим этот класс для получения пикселей изображения, следует избегать прямого вызова этого метода, поскольку это может привести к проблемам при получении запрошенных пикселей.

Указан в:
setProperties в интерфейсе ImageConsumer
Параметры:
props — список свойств

setColorModel

public void setColorModel(ColorModel model)
Метод setColorModel является частью API ImageConsumer, который этот класс должен реализовать для получения пикселей.

Примечание. Этот метод предназначен для вызова ImageProducer изображения, пиксели которого захватываются. Разработчикам, использующим этот класс для получения пикселей изображения, следует избегать прямого вызова этого метода, поскольку это может привести к проблемам при получении запрошенных пикселей.

Указан в:
setColorModel в интерфейсе ImageConsumer
Параметры:
model — указанная ColorModel
См. также:
  • getColorModel()

setPixels

public void setPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, byte[] pixels, int srcOff, int srcScan)
Метод setPixels является частью API ImageConsumer, который этот класс должен реализовать для получения пикселей.

Примечание: этот метод предназначен для вызова ImageProducer изображения, пиксели которого считываются. Разработчикам, использующим этот класс для получения пикселей изображения, следует избегать прямого вызова этого метода, поскольку это может привести к проблемам при получении запрошенных пикселей.

Определено в:
setPixels в интерфейсе ImageConsumer
Параметры:
srcX — координата X верхнего левого угла области устанавливаемых пикселей
srcY — координата Y верхнего левого угла области устанавливаемых пикселей
srcW — ширина области пикселей
srcH — высота области пикселей
model — указанный ColorModel
pixels — массив пикселей
srcOff — смещение в массиве пикселей
srcScan — расстояние между соседними строками пикселей в массиве пикселей
См. также:
  • getPixels()

setPixels

public void setPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, int[] pixels, int srcOff, int srcScan)
Метод setPixels является частью API ImageConsumer, который этот класс должен реализовать для получения пикселей.

Примечание: этот метод предназначен для вызова ImageProducer изображения, пиксели которого считываются. Разработчикам, использующим этот класс для получения пикселей изображения, следует избегать прямого вызова этого метода, поскольку это может привести к проблемам при получении запрошенных пикселей.

Определено в:
setPixels в интерфейсе ImageConsumer
Параметры:
srcX — координата X верхнего левого угла области устанавливаемых пикселей
srcY — координата Y верхнего левого угла области устанавливаемых пикселей
srcW — ширина области пикселей
srcH — высота области пикселей
model — указанный ColorModel
pixels — массив пикселей
srcOff — смещение в массиве пикселей
srcScan — расстояние между соседними строками пикселей в массиве пикселей
См. также:
  • getPixels()

imageComplete

public void imageComplete(int status)
Метод imageComplete является частью API ImageConsumer, который этот класс должен реализовать для получения пикселей.

Примечание: этот метод предназначен для вызова ImageProducer изображения, пиксели которого считываются. Разработчикам, использующим этот класс для получения пикселей изображения, следует избегать прямого вызова этого метода, поскольку это может привести к проблемам при получении запрошенных пикселей.

Определено в:
imageComplete в интерфейсе ImageConsumer
Параметры:
status — состояние загрузки изображения
См. также:
  • ImageProducer.removeConsumer(ImageConsumer)

status

public int status()
Возвращает состояние пикселей. Возвращаются флаги ImageObserver, указывающие на доступную информацию о пикселях. Этот метод и getStatus реализованы одинаково, однако getStatus является предпочтительным методом, поскольку соответствует соглашению о присвоении методам получения информации имён вида «getXXX».
Возвращает:
побитовое ИЛИ всех соответствующих флагов ImageObserver
См. также:
  • ImageObserver
  • getStatus()

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

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