Spec-Zone.ru › OpenJDK 25

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

Поля, объявленные в интерфейсе ImageConsumer

COMPLETESCANLINES, IMAGEABORTED, IMAGEERROR, RANDOMPIXELORDER, SINGLEFRAME, SINGLEFRAMEDONE, SINGLEPASS, STATICIMAGEDONE, 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)
Если модель цвета является IndexColorModel и подкласс установил флаг canFilterIndexColorModel в значение true, здесь мы подставляем отфильтрованную версию модели цвета, а также используем её везде, где исходный объект ColorModel встречается в методах setPixels.
void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize)
Если объект ColorModel совпадает с уже преобразованным объектом, просто передаёт пиксели с преобразованной моделью цвета.
void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, int scansize)
Если объект ColorModel совпадает с уже преобразованным объектом, просто передаёт пиксели с преобразованной моделью цвета; в противном случае преобразует буфер целочисленных пикселей в стандартную модель цвета RGB и передаёт преобразованный буфер методу filterRGBPixels для последовательного преобразования пикселей.
void substituteColorModel(ColorModel oldcm, ColorModel newcm)
Регистрирует две модели цвета ColorModel для подстановки.

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

clone, getFilterInstance, imageComplete, resendTopDownLeftRight, setDimensions, setHints, setProperties

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

equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

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, этот метод переопределяет модель цвета по умолчанию, используемую ImageProducer, и задаёт стандартную модель цвета RGB.

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

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

substituteColorModel

public void substituteColorModel(ColorModel oldcm, ColorModel newcm)
Регистрирует две модели цвета для подстановки. Если 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, поочерёдно передавая каждый пиксель методу 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 совпадает с уже преобразованным, пиксели просто передаются дальше с преобразованной моделью цвета. В противном случае буфер байтовых пикселей преобразуется в стандартную модель цвета RGB, а преобразованный буфер передаётся методу 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 совпадает с уже преобразованным, пиксели просто передаются дальше с преобразованной моделью цвета. В противном случае буфер целочисленных пикселей преобразуется в стандартную модель цвета RGB, а преобразованный буфер передаётся методу filterRGBPixels для поочерёдного преобразования каждого пикселя. Буфер целочисленных пикселей преобразуется в стандартную модель цвета RGB, а преобразованный буфер передаётся методу 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 в один выходной пиксель.
Параметры:
x — координата X пикселя
y — координата Y пикселя
rgb — целочисленное представление пикселя в стандартной модели цвета RGB
Возвращает:
отфильтрованный пиксель в стандартной модели цвета RGB.
См. также:
  • ColorModel.getRGBdefault()
  • filterRGBPixels(int, int, int, int, int[], int, int)

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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/RGBImageFilter.html

Spec-Zone.ru

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