Spec-Zone.ru › OpenJDK 25

Класс 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

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

Конструктор Описание
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

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

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) из указанного изображения. Пиксели накапливаются в исходной цветовой модели ColorModel, если во всех вызовах setPixels используется одна и та же ColorModel; в противном случае они накапливаются в стандартной цветовой модели 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, если исходное изображение использует для передачи данных несколько цветовых моделей ColorModel, возвращаемый этим методом объект-массив может изменяться до завершения получения изображения.
Возвращает:
массив байтов или массив целых чисел
См. также:
  • getStatus()
  • setPixels(int, int, int, int, ColorModel, byte[], int, int)
  • setPixels(int, int, int, int, ColorModel, int[], int, int)

getColorModel

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

setDimensions

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

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

Определено в:
setDimensions в интерфейсе ImageConsumer
Параметры:
width — ширина измерения
height — высота измерения

setHints

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

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

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

setProperties

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

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

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

setColorModel

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

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

Определено в:
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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/awt/image/PixelGrabber.html

Spec-Zone.ru

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