Spec-Zone.ru › OpenJDK 21

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

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

Поля, объявленные в интерфейсе java.awt.image.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()
Запрос изображения или ImageProducer начать доставку пикселей и ожидание всех пикселей в интересующем прямоугольнике для доставки.
boolean grabPixels(long ms)
Запрос изображения или 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()
Возвращает состояние пикселей.

Методы, объявленные в классе java.lang.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) из указанного изображения. Пиксели накапливаются в исходной цветовой модели, если используется та же цветовая модель для каждого вызова 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 в любой момент, если исходное изображение использует более одной цветовой модели для передачи данных, объект ColorModel, возвращаемый этим методом, может изменяться со временем до завершения извлечения изображения и может не отражать ни один из объектов ColorModel, которые использовались ImageProducer для передачи пикселей.
Возвращает:
объект ColorModel, используемый для хранения пикселей
См. также:
  • 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(java.awt.image.ImageConsumer)

status

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

© 1993, 2023, 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/21/docs/api/java.desktop/java/awt/image/PixelGrabber.html

Spec-Zone.ru

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