Spec-Zone.ru › OpenJDK 27

Класс RGBImageFilter

java.lang.Object
java.awt.image.ImageFilter
java.awt.image.RGBImageFilter
Все реализованные интерфейсы:
ImageConsumer, Cloneable
Прямые известные подклассы:
GrayFilter
public abstract class RGBImageFilter extends ImageFilter
Этот класс позволяет легко создавать ImageFilter, который изменяет пиксели изображения в стандартной цветовой модели RGB. Предполагается, что он будет использоваться совместно с объектом FilteredImageSource для создания отфильтрованных версий существующих изображений. Это абстрактный класс, предоставляющий вызовы, необходимые для передачи всех данных о пикселях через один метод, который преобразует пиксели по одному в стандартной цветовой модели RGB независимо от цветовой модели, используемой ImageProducer. Для создания пригодного к использованию фильтра изображений необходимо определить только метод filterRGB. Ниже приведён пример определения фильтра, меняющего местами красный и синий компоненты изображения:

     class RedBlueSwapFilter extends RGBImageFilter {
         public RedBlueSwapFilter() {
             // The filter's operation does not depend on the
             // pixel's location, so IndexColorModels can be
             // filtered directly.
             canFilterIndexColorModel = true;
         }

         public int filterRGB(int x, int y, int rgb) {
             return ((rgb & 0xff00ff00)
                     | ((rgb & 0xff0000) >> 16)
                     | ((rgb & 0xff) << 16));
         }
     }

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

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

Модификатор и тип Поле Описание
protected boolean canFilterIndexColorModel
Этот логический флаг указывает, допустимо ли применять цветовую фильтрацию метода filterRGB к записям цветовой таблицы объекта IndexColorModel вместо фильтрации каждого пикселя по отдельности.
protected ColorModel newmodel
ColorModel, которым заменяется origmodel при вызове пользователем substituteColorModel.
protected ColorModel origmodel
ColorModel, который заменяется на newmodel при вызове пользователем substituteColorModel.

Поля, объявленные в классе ImageFilter

consumer
Модификатор и тип Поле Описание
protected ImageConsumer consumer
Потребитель конкретного потока данных изображения, для которого данный экземпляр ImageFilter выполняет фильтрацию.

Поля, объявленные в интерфейсе 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
Пиксели будут передаваться сверху вниз, слева направо.

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

RGBImageFilter()
Модификатор Конструктор Описание
protected
Конструктор для вызова из подклассов.

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

Модификатор и тип Метод Описание
IndexColorModel filterIndexColorModel(IndexColorModel icm)
Фильтрует объект IndexColorModel, пропуская каждую запись его цветовых таблиц через функцию filterRGB, которую должны предоставлять подклассы RGBImageFilter.
abstract int filterRGB(int x, int y, int rgb)
Подклассы должны определить метод, преобразующий один входной пиксель в стандартной цветовой модели RGB в один выходной пиксель.
void filterRGBPixels(int x, int y, int w, int h, int[] pixels, int off, int scansize)
Фильтрует буфер пикселей в стандартной цветовой модели RGB, поочерёдно передавая их методу filterRGB.
void setColorModel(ColorModel model)
Если ColorModel является IndexColorModel и подкласс установил флаг canFilterIndexColorModel в значение true, здесь мы подставляем отфильтрованную версию цветовой модели, а также делаем это везде, где исходный объект ColorModel встречается в методах setPixels.
void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize)
Если объект ColorModel совпадает с уже преобразованным объектом, пиксели просто передаются с преобразованной ColorModel.
void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, int scansize)
Если объект ColorModel совпадает с уже преобразованным объектом, пиксели просто передаются с преобразованной ColorModel; в противном случае буфер целочисленных пикселей преобразуется в стандартную цветовую модель RGB, а преобразованный буфер передаётся методу filterRGBPixels для поэлементного преобразования.
void substituteColorModel(ColorModel oldcm, ColorModel newcm)
Регистрирует два объекта ColorModel для подстановки.

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

clone, getFilterInstance, imageComplete, resendTopDownLeftRight, setDimensions, setHints, setProperties
Модификатор и тип Метод Описание
Object clone()
Клонирует этот объект.
ImageFilter getFilterInstance(ImageConsumer ic)
Возвращает уникальный экземпляр объекта ImageFilter, который будет выполнять фильтрацию для указанного ImageConsumer.
void imageComplete(int status)
Фильтрует информацию, предоставленную методом imageComplete интерфейса ImageConsumer.
void resendTopDownLeftRight(ImageProducer ip)
Обрабатывает запрос на повторную передачу данных пикселей из ImageConsumer в порядке TopDownLeftRight (TDLR).
void setDimensions(int width, int height)
Фильтрует информацию, предоставленную методом setDimensions интерфейса ImageConsumer.
void setHints(int hints)
Фильтрует информацию, предоставленную методом setHints интерфейса ImageConsumer.
void setProperties(Hashtable<?,?> props)
Передаёт свойства исходного объекта, добавляя свойство, указывающее цепочку фильтров, через которую он прошёл.

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

equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
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()
Переводит текущий поток в состояние ожидания до пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного времени.

Подробное описание полей

origmodel

protected ColorModel origmodel
ColorModel, который будет заменен на newmodel, когда пользователь вызовет substituteColorModel.

newmodel

protected ColorModel newmodel
ColorModel, которым следует заменить origmodel, когда пользователь вызовет substituteColorModel.

canFilterIndexColorModel

protected boolean canFilterIndexColorModel
Это логическое значение указывает, допустимо ли применять цветовую фильтрацию метода filterRGB к записям цветовой таблицы объекта IndexColorModel вместо фильтрации каждого пикселя по отдельности. Подклассы должны присвоить этой переменной значение true в своем конструкторе, если метод filterRGB не зависит от координат фильтруемого пикселя.
См. также:
  • substituteColorModel(ColorModel, ColorModel)
  • filterRGB(int, int, int)
  • IndexColorModel

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

RGBImageFilter

protected RGBImageFilter()
Конструктор для вызова из подклассов.

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

setColorModel

public void setColorModel(ColorModel model)
Если ColorModel является IndexColorModel и подкласс установил флаг canFilterIndexColorModel в true, здесь и везде, где исходный объект ColorModel встречается в методах setPixels, мы подставляем отфильтрованную версию цветовой модели. Если ColorModel не является IndexColorModel или равен null, этот метод переопределяет ColorModel по умолчанию, используемый ImageProducer, и указывает вместо него RGB ColorModel по умолчанию.

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

Определено в:
setColorModel в интерфейсе ImageConsumer
Переопределяет:
setColorModel в классе ImageFilter
Параметры:
model — указанная ColorModel
См. также:
  • ImageConsumer
  • ColorModel.getRGBdefault()

substituteColorModel

public void substituteColorModel(ColorModel oldcm, ColorModel newcm)
Регистрирует два объекта ColorModel для подстановки. Если oldcm встречается в любом из методов setPixels, вместо него подставляется newcm, а пиксели передаются без изменений (но с новым объектом ColorModel).
Параметры:
oldcm — объект ColorModel, который следует заменить на лету
newcm — объект ColorModel, которым следует заменить oldcm на лету

filterIndexColorModel

public IndexColorModel filterIndexColorModel(IndexColorModel icm)
Фильтрует объект IndexColorModel, передавая каждую запись его цветовых таблиц функции filterRGB, которую должны реализовать подклассы RGBImageFilter. Использует координаты -1, чтобы указать, что фильтруется запись цветовой таблицы, а не значение реального пикселя.
Параметры:
icm — объект IndexColorModel, который необходимо отфильтровать
Возвращает:
новый IndexColorModel, представляющий отфильтрованные цвета
Выбрасывает:
NullPointerException — если icm равен null

filterRGBPixels

public void filterRGBPixels(int x, int y, int w, int h, int[] pixels, int off, int scansize)
Фильтрует буфер пикселей в RGB ColorModel по умолчанию, последовательно передавая каждый пиксель методу filterRGB.
Параметры:
x — координата X верхнего левого угла области пикселей
y — координата Y верхнего левого угла области пикселей
w — ширина области пикселей
h — высота области пикселей
pixels — массив пикселей
off — смещение в массиве pixels
scansize — расстояние в массиве между соседними строками пикселей
См. также:
  • ColorModel.getRGBdefault()
  • filterRGB(int, int, int)

setPixels

public void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize)
Если объект ColorModel совпадает с уже преобразованным объектом, пиксели просто передаются с преобразованным ColorModel. В противном случае буфер пикселей типа byte преобразуется в RGB ColorModel по умолчанию, а преобразованный буфер передается методу filterRGBPixels для обработки каждого пикселя по отдельности.

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

Определено в:
setPixels в интерфейсе ImageConsumer
Переопределяет:
setPixels в классе ImageFilter
Параметры:
x — координата X верхнего левого угла области пикселей, которые необходимо задать
y — координата Y верхнего левого угла области пикселей, которые необходимо задать
w — ширина области пикселей
h — высота области пикселей
model — указанная ColorModel
pixels — массив пикселей
off — смещение в массиве pixels
scansize — расстояние в массиве pixels между соседними строками пикселей
См. также:
  • ColorModel.getRGBdefault()
  • filterRGBPixels(int, int, int, int, int[], int, int)

setPixels

public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, int scansize)
Если объект ColorModel совпадает с уже преобразованным объектом, пиксели просто передаются с преобразованным ColorModel; в противном случае буфер целочисленных пикселей преобразуется в RGB ColorModel по умолчанию, а преобразованный буфер передается методу filterRGBPixels для обработки каждого пикселя по отдельности. Преобразует буфер целочисленных пикселей в RGB ColorModel по умолчанию и передает преобразованный буфер методу filterRGBPixels.

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

Определено в:
setPixels в интерфейсе ImageConsumer
Переопределяет:
setPixels в классе ImageFilter
Параметры:
x — координата X верхнего левого угла области пикселей, которые необходимо задать
y — координата Y верхнего левого угла области пикселей, которые необходимо задать
w — ширина области пикселей
h — высота области пикселей
model — указанная ColorModel
pixels — массив пикселей
off — смещение в массиве pixels
scansize — расстояние в массиве pixels между соседними строками пикселей
См. также:
  • ColorModel.getRGBdefault()
  • filterRGBPixels(int, int, int, int, int[], int, int)

filterRGB

public abstract int filterRGB(int x, int y, int rgb)
Подклассы должны определить метод для преобразования одного входного пикселя в RGB ColorModel по умолчанию в один выходной пиксель.
Параметры:
x — координата X пикселя
y — координата Y пикселя
rgb — целочисленное представление пикселя в RGB-модели цвета по умолчанию
Возвращает:
отфильтрованный пиксель в RGB-модели цвета по умолчанию.
См. также:
  • ColorModel.getRGBdefault()
  • filterRGBPixels(int, int, int, int, int[], int, int)

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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