Класс 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
}
}
Для растровых изображений масштабирование выполняется по каналам. Количество наборов коэффициентов масштабирования может быть одним, в этом случае одни и те же коэффициенты применяются ко всем каналам, или оно должно равняться количеству каналов исходного растрового изображения.
Для изображений BufferedImage масштабирование выполняется по цветовым и альфа-компонентам. Количество наборов коэффициентов масштабирования может быть одним, в этом случае одни и те же коэффициенты применяются ко всем цветовым (но не альфа) компонентам. В противном случае количество наборов коэффициентов масштабирования может равняться количеству цветовых компонентов исходного изображения, в этом случае масштабирование альфа-компоненты (если она присутствует) не выполняется. Если ни один из этих случаев не применим, количество наборов коэффициентов масштабирования должно равняться количеству цветовых компонентов исходного изображения плюс альфа-компонента, в этом случае масштабируются все цветовые и альфа-компоненты.
Источники BufferedImage с данными с предварительным умножением альфа-канала обрабатываются так же, как и изображения без предварительного умножения для целей масштабирования. То есть масштабирование выполняется по каждому каналу над исходными данными источника BufferedImage без учета того, умножены ли данные предварительно. Если требуется преобразование цвета в целевой ColorModel, состояние предварительного умножения и источника, и цели будет учтено на этом шаге.
Изображения с IndexColorModel масштабировать нельзя.
Если в конструкторе указан объект RenderingHints, при необходимости преобразования цвета могут быть использованы подсказки по цветовому рендерингу и подсказки по заливанию.
Обратите внимание, что разрешена операция на месте (т.е. исходный и целевой объекты могут быть одним и тем же объектом).
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
RescaleOp |
Создаёт новый RescaleOp с желаемыми коэффициентами масштабирования и смещениями. |
RescaleOp |
Создаёт новый RescaleOp с желаемым коэффициентом масштабирования и смещением. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
BufferedImage |
createCompatibleDestImage |
Создаёт целевое изображение с нулевыми значениями, соответствующего размера и количества каналов. |
WritableRaster |
createCompatibleDestRaster |
Создаёт целевое изображение Raster с нулевыми значениями, соответствующего размера и количества каналов, учитывая данный источник. |
final BufferedImage |
filter |
Масштабирует исходное изображение BufferedImage. |
final WritableRaster |
filter |
Масштабирует пиксельные данные в исходном растре. |
final Rectangle2D |
getBounds2D |
Возвращает область ограничивающую целевое масштабированное изображение. |
final Rectangle2D |
getBounds2D |
Возвращает область ограничивающую целевой масштабированный растр. |
final int |
getNumFactors() |
Возвращает количество коэффициентов масштабирования и смещений, используемых в этом RescaleOp. |
final float[] |
getOffsets |
Возвращает смещения в заданном массиве. |
final Point2D |
getPoint2D |
Возвращает координаты целевой точки, соответствующей точке в исходном изображении. |
final RenderingHints |
getRenderingHints() |
Возвращает подсказки рендеринга для этой операции. |
final float[] |
getScaleFactors |
Возвращает коэффициенты масштабирования в заданном массиве. |
Подробное описание конструкторов
RescaleOp
public RescaleOp(float[] scaleFactors, float[] offsets, RenderingHints hints)
- Параметры:
-
scaleFactors- заданные коэффициенты масштабирования -
offsets- заданные смещения -
hints- заданныеRenderingHints, илиnull
RescaleOp
public RescaleOp(float scaleFactor, float offset, RenderingHints hints)
- Параметры:
-
scaleFactor- заданный коэффициент масштабирования -
offset- заданное смещение -
hints- заданныеRenderingHints, илиnull
Подробное описание методов
getScaleFactors
public final float[] getScaleFactors(float[] scaleFactors)
- Параметры:
-
scaleFactors- массив, содержащий коэффициенты масштабирования этогоRescaleOp - Возвращает:
- коэффициенты масштабирования этого
RescaleOp.
getOffsets
public final float[] getOffsets(float[] offsets)
- Параметры:
-
offsets- массив, содержащий смещения этогоRescaleOp - Возвращает:
- смещения этого
RescaleOp.
getNumFactors
public final int getNumFactors()
- Возвращает:
- количество коэффициентов масштабирования и смещений этого
RescaleOp.
filter
public final BufferedImage filter(BufferedImage src, BufferedImage dst)
- Указано в:
-
filterв интерфейсеBufferedImageOp - Параметры:
-
src- изображениеBufferedImageдля фильтрации -
dst- назначение для операции фильтрации илиnull - Возвращает:
- отфильтрованное изображение
BufferedImage. - Бросает:
-
IllegalArgumentException- еслиColorModelизображенияsrcявляетсяIndexColorModel, или если количество коэффициентов масштабирования и смещений в этомRescaleOpне соответствует требованиям, указанным в комментариях к классу, или если исходное и целевое изображения отличаются по размеру.
filter
public final WritableRaster filter(Raster src, WritableRaster dst)
- Указано в:
-
filterв интерфейсеRasterOp - Параметры:
-
src-Rasterдля фильтрации -
dst- назначение для операции фильтрации илиnull - Возвращает:
- отфильтрованный
WritableRaster. - Бросает:
-
IllegalArgumentException- еслиsrcиdstне имеют одинакового количества каналов, или если количество коэффициентов масштабирования и смещений в этомRescaleOpне соответствует требованиям, указанным в комментариях к классу, или если исходный и целевой растры отличаются по размеру.
getBounds2D
public final Rectangle2D getBounds2D(BufferedImage src)
- Указано в:
-
getBounds2Dв интерфейсеBufferedImageOp - Параметры:
-
src- изображениеBufferedImageдля фильтрации - Возвращает:
- Прямоугольник, представляющий прямоугольник границ масштабированного изображения назначения.
getBounds2D
public final Rectangle2D getBounds2D(Raster src)
- Указано в:
-
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)
- Указано в:
-
getPoint2Dв интерфейсеBufferedImageOp - Указано в:
-
getPoint2Dв интерфейсеRasterOp - Параметры:
-
srcPt- точка в исходном изображении -
dstPt- целевая точка илиnull - Возвращает:
- координаты целевой точки.
getRenderingHints
public final RenderingHints getRenderingHints()
- Указано в:
-
getRenderingHintsв интерфейсеBufferedImageOp - Указано в:
-
getRenderingHintsв интерфейсеRasterOp - Возвращает:
- параметры рендеринга этого
RescaleOp.
© 1993, 2023, 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/21/docs/api/java.desktop/java/awt/image/RescaleOp.html