Класс 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 |
|
protected ColorModel | origmodel |
|
Поля, объявленные в классе java.awt.image.ImageFilter
consumer Поля, объявленные в интерфейсе java.awt.image.ImageConsumer
COMPLETESCANLINES, IMAGEABORTED, IMAGEERROR, RANDOMPIXELORDER, SINGLEFRAME, SINGLEFRAMEDONE, SINGLEPASS, STATICIMAGEDONE, TOPDOWNLEFTRIGHT Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
RGBImageFilter() |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
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 для подстановки. |
Методы, объявленные в классе java.awt.image.ImageFilter
clone, getFilterInstance, imageComplete, resendTopDownLeftRight, setDimensions, setHints, setProperties Методы, объявленные в классе java.lang.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 не зависит от координат фильтруемого пикселя.
Конструкторы
RGBImageFilter
public RGBImageFilter()
Методы
setColorModel
public void setColorModel(ColorModel model)
Если ColorModel является IndexColorModel, а подкласс установил флаг canFilterIndexColorModel в true, мы заменим здесь и везде, где в методах setPixels встречается исходный объект ColorModel, отфильтрованную версию модели. Если ColorModel не является IndexColorModel или равен null, этот метод переопределяет используемую по умолчанию модель ColorModel, задавая вместо неё стандартную RGB-модель.
Примечание: Этот метод предназначен для вызова 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-модели, передавая их по одному через метод 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. В противном случае преобразует буфер байтовых пикселей в стандартную 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 — тот, который уже был преобразован, то просто пропускает пиксели через преобразованный 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)
© 1993, 2020, 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/11/docs/api/java.desktop/java/awt/image/RGBImageFilter.html