Класс 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]);
}
}
}
- См. также:
Краткое описание полей
Поля, объявленные в интерфейсе 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 |
Создает объект 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() |
Возвращает состояние пикселей. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект какому-либо другому объекту. |
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 |
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt, либо истечения определенного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt, либо истечения определенного промежутка реального времени. |
Подробное описание конструкторов
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()
- Возвращает:
- объект модели цвета, используемый для хранения пикселей
- См. также:
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.