Класс 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 масштабирование выполняется по цветовым и альфа-компонентам. Количество наборов констант масштабирования может быть одним, в этом случае одинаковые константы применяются ко всем цветовым (но не альфа) компонентам. В противном случае количество наборов констант масштабирования может быть равно количеству цветовых компонентов исходного изображения, в этом случае масштабирование альфа-компоненты (если она есть) не выполняется. Если ни один из этих случаев не применим, количество наборов констант масштабирования должно быть равно количеству цветовых компонентов плюс альфа-компоненты, в этом случае масштабируются все цветовые и альфа-компоненты.
Источники BufferedImage с предварительно умноженными данными альфа обрабатываются так же, как и изображения без предварительного умножения для целей масштабирования. То есть, масштабирование выполняется по каналу над исходными данными источника BufferedImage без учета того, предварительно ли умножены данные. Если необходима цветовая конвертация в целевой ColorModel, состояние предварительного умножения и источника, и назначения будет учтено на этом этапе.
Изображения с IndexColorModel не могут быть масштабированы.
Если в конструкторе указан объект RenderingHints, может использоваться цветовой параметр рендеринга и параметр дithering, когда требуется цветовая конвертация.
Обратите внимание, что разрешено работать с исходными данными in-place (т.е. исходный и целевой объекты могут быть одинаковыми).
- См. также:
-
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- изображениеBufferedImageдля фильтрации -
dst- место назначения для операции фильтрации илиnull - Возвращает:
- отфильтрованное изображение
BufferedImage. - Выбрасывает:
-
IllegalArgumentException- еслиColorModelsrcявляетсяIndexColorModel, или если количество коэффициентов масштабирования и смещений в этомRescaleOpне соответствует требованиям, указанным в комментариях к классу, или если исходное и целевое изображения отличаются по размеру.
filter
public final WritableRaster filter(Raster src,
WritableRaster dst) Масштабирует данные пикселей в исходном Raster. Если целевой Raster равен null, будет создан новый Raster. Исходный и целевой Raster должны иметь одинаковое количество каналов. В противном случае выброшено исключение IllegalArgumentException. Обратите внимание, что количество коэффициентов масштабирования/смещений в этом объекте должно соответствовать ограничениям, указанным в комментариях к классу. В противном случае выброшено исключение IllegalArgumentException.
- Указано в:
-
filterв интерфейсеRasterOp - Параметры:
-
src- исходныйRasterдля фильтрации -
dst- место назначения для операции фильтрации илиnull - Возвращает:
- отфильтрованный
WritableRaster. - Выбрасывает:
-
IllegalArgumentException- еслиsrcиdstне имеют одинакового количества каналов, или если количество коэффициентов масштабирования и смещений в этомRescaleOpне соответствует требованиям, указанным в комментариях к классу, или если исходный и целевой Raster отличаются по размеру.
getBounds2D
public final Rectangle2D getBounds2D(BufferedImage src)
Возвращает область ограничительной рамки масштабированного изображения назначения. Поскольку это не геометрическая операция, область ограничительной рамки не изменяется.
- Указано в:
-
getBounds2Dв интерфейсеBufferedImageOp - Параметры:
-
src- Исходное изображениеBufferedImageдля фильтрации - Возвращает:
- Объект
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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/image/RescaleOp.html