Класс PixelGrabber
- Все реализованные интерфейсы:
ImageConsumer
public class PixelGrabber extends Object implements ImageConsumer
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]);
}
}
}
- См. также:
Краткое описание полей
Поля, объявленные в интерфейсе java.awt.image.ImageConsumer
COMPLETESCANLINES, IMAGEABORTED, IMAGEERROR, RANDOMPIXELORDER, SINGLEFRAME, SINGLEFRAMEDONE, SINGLEPASS, STATICIMAGEDONE, TOPDOWNLEFTRIGHT
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
PixelGrabber |
Создаёт объект PixelGrabber для захвата прямоугольной области пикселей (x, y, w, h) из изображения, созданного указанным ImageProducer, в заданный массив. |
PixelGrabber |
Создаёт объект PixelGrabber для захвата прямоугольной области пикселей (x, y, w, h) из указанного изображения. |
PixelGrabber |
Создаёт объект 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 |
Запрашивает у Image или ImageProducer начать доставку пикселей и ожидает, пока все пиксели в интересующем прямоугольнике будут доставлены или пока не истечёт указанное время ожидания. |
void |
imageComplete |
Метод imageComplete является частью API ImageConsumer, который должен реализовать этот класс для получения пикселей. |
void |
setColorModel |
Метод setColorModel является частью API ImageConsumer, который должен реализовать этот класс для получения пикселей. |
void |
setDimensions |
Метод setDimensions является частью API ImageConsumer, который должен реализовать этот класс для получения пикселей. |
void |
setHints |
Метод setHints является частью API ImageConsumer, который должен реализовать этот класс для получения пикселей. |
void |
setPixels |
Метод setPixels является частью API ImageConsumer, который должен реализовать этот класс для получения пикселей. |
void |
setPixels |
Метод setPixels является частью API ImageConsumer, который должен реализовать этот класс для получения пикселей. |
void |
setProperties |
Метод setProperties является частью API ImageConsumer, который должен реализовать этот класс для получения пикселей. |
void |
startGrabbing() |
Запрашивает PixelGrabber начать извлечение пикселей. |
int |
status() |
Возвращает состояние пикселей. |
Подробное описание конструкторов
PixelGrabber
public PixelGrabber(Image img, int x, int y, int w, int h, int[] pix, int off, int scansize)
pix[(j - y) * scansize + (i - x) + off].- Параметры:
-
img- изображение, из которого извлекаются пиксели -
x- координата x левого верхнего угла прямоугольника пикселей, которые необходимо извлечь из изображения, относительно размера изображения по умолчанию (без масштабирования) -
y- координата y левого верхнего угла прямоугольника пикселей, которые необходимо извлечь из изображения -
w- ширина прямоугольника пикселей для извлечения -
h- высота прямоугольника пикселей для извлечения -
pix- массив целых чисел, который будет использоваться для хранения пикселей RGB, извлечённых из изображения -
off- смещение в массиве, где будет храниться первый пиксел -
scansize- расстояние между строками пикселей в массиве - См. также:
PixelGrabber
public PixelGrabber(ImageProducer ip, int x, int y, int w, int h, int[] pix, int off, int scansize)
pix[(j - y) * scansize + (i - x) + off].- Параметры:
-
ip-ImageProducer, создающий изображение, из которого извлекаются пиксели -
x- координата x левого верхнего угла прямоугольника пикселей, которые необходимо извлечь из изображения, относительно размера изображения по умолчанию (без масштабирования) -
y- координата y левого верхнего угла прямоугольника пикселей, которые необходимо извлечь из изображения -
w- ширина прямоугольника пикселей для извлечения -
h- высота прямоугольника пикселей для извлечения -
pix- массив целых чисел, который будет использоваться для хранения пикселей RGB, извлечённых из изображения -
off- смещение в массиве, где будет храниться первый пиксел -
scansize- расстояние между строками пикселей в массиве - См. также:
PixelGrabber
public PixelGrabber(Image img, int x, int y, int w, int h, boolean forceRGB)
(w < 0) или (h < 0), они будут по умолчанию равны оставшейся ширине и высоте исходных данных, когда эта информация будет доставлена.- Параметры:
-
img- изображение, из которого извлекаются данные изображения -
x- координата x левого верхнего угла прямоугольника пикселей, которые необходимо извлечь из изображения, относительно размера изображения по умолчанию (без масштабирования) -
y- координата y левого верхнего угла прямоугольника пикселей, которые необходимо извлечь из изображения -
w- ширина прямоугольника пикселей для извлечения -
h- высота прямоугольника пикселей для извлечения -
forceRGB- true, если пиксели всегда должны преобразовываться в стандартную цветовую модель RGB
Подробное описание методов
startGrabbing
public void startGrabbing()
abortGrabbing
public void abortGrabbing()
grabPixels
public boolean grabPixels() throws InterruptedException
- Возвращает:
- true, если пиксели успешно извлечены, false при прерывании, ошибке или истечении времени ожидания
- Исключения:
-
InterruptedException- Другой поток прервал этот поток.
grabPixels
public boolean grabPixels(long ms) throws InterruptedException
ms: - Если
ms == 0, ожидает, пока все пиксели будут доставлены - Если
ms > 0, ожидает, пока все пиксели будут доставлены, или до истечения времени ожидания. - Если
ms < 0, возвращаетtrue, если все пиксели извлечены,falseв противном случае и не ожидает.
- Параметры:
-
ms- количество миллисекунд, которое следует ожидать получения пикселей изображения перед истечением времени ожидания - Возвращает:
- true, если пиксели успешно извлечены, false при прерывании, ошибке или истечении времени ожидания
- Исключения:
-
InterruptedException- Другой поток прервал этот поток.
getStatus
public int getStatus()
- Возвращает:
- побитовое ИЛИ всех соответствующих флагов ImageObserver
- См. также:
getWidth
public int getWidth()
- Возвращает:
- конечная ширина, используемая для буфера пикселей, или -1, если ширина ещё неизвестна
- См. также:
getHeight
public int getHeight()
- Возвращает:
- конечная высота, используемая для буфера пикселей, или -1, если высота ещё неизвестна
- См. также:
getPixels
public Object getPixels()
- Возвращает:
- массив байтов или массив целых чисел
- См. также:
getColorModel
public ColorModel getColorModel()
- Возвращает:
- объект ColorModel, используемый для хранения пикселей
- См. также:
setDimensions
public void setDimensions(int width, int height)
Примечание: Этот метод предназначен для вызова ImageProducer изображения, пиксели которого захватываются. Разработчики, использующие этот класс для получения пикселей из изображения, должны избегать прямого вызова этого метода, так как это может привести к проблемам с получением запрашиваемых пикселей.
- Указано:
-
setDimensionsв интерфейсеImageConsumer - Параметры:
-
width- ширина размера -
height- высота размера
setHints
public void setHints(int hints)
Примечание: Этот метод предназначен для вызова ImageProducer изображения, пиксели которого захватываются. Разработчики, использующие этот класс для получения пикселей из изображения, должны избегать прямого вызова этого метода, так как это может привести к проблемам с получением запрашиваемых пикселей.
- Указано:
-
setHintsв интерфейсеImageConsumer - Параметры:
-
hints- набор подсказок, используемых для обработки пикселей
setProperties
public void setProperties(Hashtable<?,?> props)
Примечание: Этот метод предназначен для вызова ImageProducer изображения, пиксели которого захватываются. Разработчики, использующие этот класс для получения пикселей из изображения, должны избегать прямого вызова этого метода, так как это может привести к проблемам с получением запрашиваемых пикселей.
- Указано:
-
setPropertiesв интерфейсеImageConsumer - Параметры:
-
props- список свойств
setColorModel
public void setColorModel(ColorModel model)
Примечание: Этот метод предназначен для вызова ImageProducer изображения, пиксели которого захватываются. Разработчики, использующие этот класс для получения пикселей из изображения, должны избегать прямого вызова этого метода, так как это может привести к проблемам с получением запрашиваемых пикселей.
- Указано:
-
setColorModelв интерфейсеImageConsumer - Параметры:
-
model- указаннаяColorModel - См. также:
setPixels
public void setPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, byte[] pixels, int srcOff, int srcScan)
Примечание: Этот метод предназначен для вызова ImageProducer изображения, пиксели которого захватываются. Разработчики, использующие этот класс для получения пикселей из изображения, должны избегать прямого вызова этого метода, так как это может привести к проблемам с получением запрашиваемых пикселей.
- Указано:
-
setPixelsв интерфейсеImageConsumer - Параметры:
-
srcX- координата X левого верхнего угла области пикселей, которые нужно установить -
srcY- координата Y левого верхнего угла области пикселей, которые нужно установить -
srcW- ширина области пикселей -
srcH- высота области пикселей -
model- указанныйColorModel -
pixels- массив пикселей -
srcOff- смещение в массиве пикселей -
srcScan- расстояние между строками пикселей в массиве пикселей - См. также:
setPixels
public void setPixels(int srcX, int srcY, int srcW, int srcH, ColorModel model, int[] pixels, int srcOff, int srcScan)
Примечание: Этот метод предназначен для вызова ImageProducer изображения, пиксели которого захватываются. Разработчики, использующие этот класс для получения пикселей из изображения, должны избегать прямого вызова этого метода, так как это может привести к проблемам с получением запрашиваемых пикселей.
- Указано:
-
setPixelsв интерфейсеImageConsumer - Параметры:
-
srcX- координата X левого верхнего угла области пикселей, которые нужно установить -
srcY- координата Y левого верхнего угла области пикселей, которые нужно установить -
srcW- ширина области пикселей -
srcH- высота области пикселей -
model- указанныйColorModel -
pixels- массив пикселей -
srcOff- смещение в массиве пикселей -
srcScan- расстояние между строками пикселей в массиве пикселей - См. также:
imageComplete
public void imageComplete(int status)
Примечание: Этот метод предназначен для вызова ImageProducer изображения, пиксели которого захватываются. Разработчики, использующие этот класс для получения пикселей из изображения, должны избегать прямого вызова этого метода, так как это может привести к проблемам с получением запрашиваемых пикселей.
- Указано:
-
imageCompleteв интерфейсеImageConsumer - Параметры:
-
status- статус загрузки изображения - См. также:
status
public int status()
getStatus имеют одинаковую реализацию, но getStatus является предпочтительным методом, потому что он соответствует соглашению об именовании методов извлечения информации в форме "getXXX".- Возвращает:
- побитовое ИЛИ всех соответствующих флагов ImageObserver
- См. также:
© 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/image/PixelGrabber.html