Класс RescaleOp
- java.lang.Object
-
- java.awt.image.RescaleOp
- Все реализованные интерфейсы:
- BufferedImageOp, RasterOp
public class RescaleOp extends Object implements BufferedImageOp, RasterOp
Этот класс выполняет масштабирование пикселей в исходном изображении путём умножения значений образцов каждого пикселя на коэффициент масштабирования и последующим добавлением смещения. Масштабированные значения образцов обрезаются до минимального/максимального значения, представимого в целевом изображении.
Псевдокод операции масштабирования:
for each pixel from Source object {
for each band/component of the pixel {
dstElement = (srcElement*scaleFactor) + offset
}
} Для растров масштабирование выполняется по каналам. Количество наборов коэффициентов масштабирования может быть одним, в этом случае одни и те же коэффициенты применяются ко всем каналам, или оно должно быть равно количеству каналов исходного растра.
Для BufferedImages масштабирование выполняется по цветовым и альфа-компонентам. Количество наборов коэффициентов масштабирования может быть одним, в этом случае одни и те же коэффициенты применяются ко всем цветовым (но не альфа-) компонентам. В противном случае, количество наборов коэффициентов масштабирования может быть равно количеству цветовых компонент источника, в этом случае масштабирование альфа-компоненты (если она присутствует) не выполняется. Если ни один из этих случаев не подходит, количество наборов коэффициентов масштабирования должно быть равно количеству цветовых компонент плюс альфа-компонент, в этом случае масштабируются все цветовые и альфа-компоненты.
Исходные BufferedImages с предварительно умноженными альфа-данными обрабатываются аналогично изображениям без предварительного умножения для целей масштабирования. То есть, масштабирование выполняется по каждому каналу на исходных данных из BufferedImage без учета того, предварительно умножены данные или нет. Если требуется преобразование цвета в целевой ColorModel, состояние предварительного умножения как источника, так и назначения будет учтено на этом шаге.
Изображения с IndexColorModel не могут быть масштабированы.
Если в конструкторе задан объект RenderingHints, при необходимости преобразования цвета могут использоваться подсказки цветового рендеринга и подсказки дithering.
Обратите внимание, что разрешается работа «на месте» (т. е. источник и назначение могут быть одним и тем же объектом).
- См. также:
-
RenderingHints.KEY_COLOR_RENDERING,RenderingHints.KEY_DITHERING
Конструкторы
| Конструктор и описание |
|---|
RescaleOp(float[] scaleFactors,
float[] offsets,
RenderingHints hints) Создаёт новый RescaleOp с требуемыми коэффициентами масштабирования и смещениями. |
RescaleOp(float scaleFactor,
float offset,
RenderingHints hints) Создаёт новый RescaleOp с требуемым коэффициентом масштабирования и смещением. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
BufferedImage |
createCompatibleDestImage(BufferedImage src,
ColorModel destCM) Создаёт пустое целевое изображение с правильным размером и количеством каналов. |
WritableRaster |
createCompatibleDestRaster(Raster src) Создаёт пустое целевое |
BufferedImage |
filter(BufferedImage src,
BufferedImage dst) Масштабирует исходное BufferedImage. |
WritableRaster |
filter(Raster src,
WritableRaster dst) Масштабирует пиксельные данные в исходном растре. |
Rectangle2D |
getBounds2D(BufferedImage src) Возвращает область обрезки масштабированного целевого изображения. |
Rectangle2D |
getBounds2D(Raster src) Возвращает область обрезки масштабированного целевого растра. |
int |
getNumFactors() Возвращает количество коэффициентов масштабирования и смещений, используемых в данном RescaleOp. |
float[] |
getOffsets(float[] offsets) Возвращает смещения в заданном массиве. |
Point2D |
getPoint2D(Point2D srcPt,
Point2D dstPt) Возвращает расположение целевой точки, заданной точкой в источнике. |
RenderingHints |
getRenderingHints() Возвращает подсказки рендеринга для данной операции. |
float[] |
getScaleFactors(float[] scaleFactors) Возвращает коэффициенты масштабирования в заданном массиве. |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
RescaleOp
public RescaleOp(float[] scaleFactors,
float[] offsets,
RenderingHints hints) Создаёт новый RescaleOp с заданными коэффициентами масштабирования и смещениями. Длина массивов scaleFactor и offset должна соответствовать ограничениям, указанным в комментариях к классу. Аргумент RenderingHints может быть null.
- Параметры:
-
scaleFactors- заданные коэффициенты масштабирования -
offsets- заданные смещения -
hints- заданныеRenderingHints, илиnull
RescaleOp
public RescaleOp(float scaleFactor,
float offset,
RenderingHints hints) Создаёт новый RescaleOp с заданным коэффициентом масштабирования и смещением. Коэффициент масштабирования и смещение будут применяться ко всем каналам в источнике Raster и ко всем цветовым (но не альфа) компонентам в BufferedImage. Аргумент RenderingHints может быть null.
- Параметры:
-
scaleFactor- заданный коэффициент масштабирования -
offset- заданное смещение -
hints- заданныеRenderingHints, илиnull
Методы
getScaleFactors
public final float[] getScaleFactors(float[] scaleFactors)
Возвращает коэффициенты масштабирования в заданном массиве. Массив также возвращается для удобства. Если scaleFactors равно null, будет выделен новый массив.
- Параметры:
-
scaleFactors- массив, содержащий коэффициенты масштабирования данногоRescaleOp - Возвращает:
- коэффициенты масштабирования данного
RescaleOp.
getOffsets
public final float[] getOffsets(float[] offsets)
Возвращает смещения в заданном массиве. Массив также возвращается для удобства. Если offsets равно null, будет выделен новый массив.
- Параметры:
-
offsets- массив, содержащий смещения данногоRescaleOp - Возвращает:
- смещения данного
RescaleOp.
getNumFactors
public final int getNumFactors()
Возвращает количество коэффициентов масштабирования и смещений, используемых в этом RescaleOp.
- Возвращает:
- количество коэффициентов масштабирования и смещений данного
RescaleOp.
filter
public final BufferedImage filter(BufferedImage src,
BufferedImage dst) Масштабирует исходное изображение BufferedImage. Если цветовой профиль в исходном изображении отличается от профиля в выходном изображении, пиксели будут преобразованы в выходном. Если выходное изображение равно null, будет создано BufferedImage с исходным цветовым профилем. Может быть выброшено исключение IllegalArgumentException, если количество коэффициентов масштабирования/смещений в этом объекте не соответствует ограничениям, указанным в комментариях к классу, или если исходное изображение имеет IndexColorModel.
- Указано в:
-
filterв интерфейсеBufferedImageOp - Параметры:
-
src- исходное изображение для фильтрации -
dst- выходное изображение для операции фильтрации илиnull - Возвращает:
- отфильтрованное изображение.
- Выбрасывает:
-
IllegalArgumentException- если цветовой профильsrcявляетсяIndexColorModel, или если количество коэффициентов масштабирования и смещений в данномRescaleOpне соответствует требованиям, описанным в комментариях к классу.
filter
public final WritableRaster filter(Raster src,
WritableRaster dst) Масштабирует данные пикселей в исходном Raster. Если выходной Raster равен null, будет создан новый Raster. Исходный и выходной Raster должны иметь одинаковое количество каналов. В противном случае, выбрасывается исключение IllegalArgumentException. Обратите внимание, что количество коэффициентов масштабирования/смещений в этом объекте должно соответствовать ограничениям, указанным в комментариях к классу. В противном случае выбрасывается исключение IllegalArgumentException.
- Указано в:
-
filterв интерфейсеRasterOp - Параметры:
-
src- исходный Raster для фильтрации -
dst- выходной Raster для операции фильтрации илиnull - Возвращает:
- отфильтрованный Raster.
- Выбрасывает:
-
IllegalArgumentException- еслиsrcиdstне имеют одинаковое количество каналов, или если количество коэффициентов масштабирования и смещений в данномRescaleOpне соответствует требованиям, указанным в комментариях к классу.
getBounds2D
public final Rectangle2D getBounds2D(BufferedImage src)
Возвращает область ограничивающей рамки масштабированного выходного изображения. Поскольку это не геометрическая операция, область ограничивающей рамки не меняется.
- Указано в:
-
getBounds2Dв интерфейсеBufferedImageOp - Параметры:
-
src- Исходное изображение для фильтрации - Возвращает:
- Объект Rectangle2D, представляющий область ограничивающей рамки выходного изображения.
getBounds2D
public final Rectangle2D getBounds2D(Raster src)
Возвращает область ограничивающей рамки масштабированного выходного Raster. Поскольку это не геометрическая операция, область ограничивающей рамки не меняется.
- Указано в:
-
getBounds2Dв интерфейсеRasterOp - Параметры:
-
src- масштабированный выходной Raster - Возвращает:
- область ограничивающей рамки указанного Raster.
createCompatibleDestImage
public BufferedImage createCompatibleDestImage(BufferedImage src,
ColorModel destCM) Создаёт нулевое выходное изображение с правильным размером и количеством каналов.
- Указано в:
-
createCompatibleDestImageв интерфейсеBufferedImageOp - Параметры:
-
src- Исходное изображение для операции фильтрации. -
destCM- Цветовой профиль выходного изображения. Если null, будет использован цветовой профиль исходного изображения. - Возвращает:
- нулевое выходное изображение.
createCompatibleDestRaster
public WritableRaster createCompatibleDestRaster(Raster src)
Создаёт нулевой выходной Raster с правильным размером и количеством каналов, заданными этим источником.
- Указано в:
-
createCompatibleDestRasterв интерфейсеRasterOp - Параметры:
-
src- исходный Raster - Возвращает:
- нулевой выходной Raster.
getPoint2D
public final Point2D getPoint2D(Point2D srcPt,
Point2D dstPt) Возвращает координаты точки выходного изображения, соответствующие заданной точке в исходном изображении. Если dstPt не null, он будет использоваться для хранения возвращаемого значения. Поскольку это не геометрическая операция, srcPt будет равен dstPt.
- Указано в:
-
getPoint2Dв интерфейсеBufferedImageOp - Указано в:
-
getPoint2Dв интерфейсеRasterOp - Параметры:
-
srcPt- точка в исходном изображении -
dstPt- точка в выходном изображении илиnull - Возвращает:
- координаты точки выходного изображения.
getRenderingHints
public final RenderingHints getRenderingHints()
Возвращает параметры визуализации для данного объекта.
- Указано в:
-
getRenderingHintsв интерфейсеBufferedImageOp - Указано в:
-
getRenderingHintsв интерфейсеRasterOp - Возвращает:
- параметры визуализации данного
RescaleOp.
© 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.