Spec-Zone.ru › OpenJDK 21

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

Для растровых изображений масштабирование выполняется по каналам. Количество наборов коэффициентов масштабирования может быть одним, в этом случае одни и те же коэффициенты применяются ко всем каналам, или оно должно равняться количеству каналов исходного растрового изображения.

Для изображений BufferedImage масштабирование выполняется по цветовым и альфа-компонентам. Количество наборов коэффициентов масштабирования может быть одним, в этом случае одни и те же коэффициенты применяются ко всем цветовым (но не альфа) компонентам. В противном случае количество наборов коэффициентов масштабирования может равняться количеству цветовых компонентов исходного изображения, в этом случае масштабирование альфа-компоненты (если она присутствует) не выполняется. Если ни один из этих случаев не применим, количество наборов коэффициентов масштабирования должно равняться количеству цветовых компонентов исходного изображения плюс альфа-компонента, в этом случае масштабируются все цветовые и альфа-компоненты.

Источники BufferedImage с данными с предварительным умножением альфа-канала обрабатываются так же, как и изображения без предварительного умножения для целей масштабирования. То есть масштабирование выполняется по каждому каналу над исходными данными источника BufferedImage без учета того, умножены ли данные предварительно. Если требуется преобразование цвета в целевой ColorModel, состояние предварительного умножения и источника, и цели будет учтено на этом шаге.

Изображения с IndexColorModel масштабировать нельзя.

Если в конструкторе указан объект RenderingHints, при необходимости преобразования цвета могут быть использованы подсказки по цветовому рендерингу и подсказки по заливанию.

Обратите внимание, что разрешена операция на месте (т.е. исходный и целевой объекты могут быть одним и тем же объектом).

См. также:
  • 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)
Создаёт целевое изображение Raster с нулевыми значениями, соответствующего размера и количества каналов, учитывая данный источник.
final BufferedImage filter(BufferedImage src, BufferedImage dst)
Масштабирует исходное изображение BufferedImage.
final WritableRaster filter(Raster src, WritableRaster dst)
Масштабирует пиксельные данные в исходном растре.
final Rectangle2D getBounds2D(BufferedImage src)
Возвращает область ограничивающую целевое масштабированное изображение.
final Rectangle2D getBounds2D(Raster src)
Возвращает область ограничивающую целевой масштабированный растр.
final int getNumFactors()
Возвращает количество коэффициентов масштабирования и смещений, используемых в этом RescaleOp.
final float[] getOffsets(float[] offsets)
Возвращает смещения в заданном массиве.
final Point2D getPoint2D(Point2D srcPt, Point2D dstPt)
Возвращает координаты целевой точки, соответствующей точке в исходном изображении.
final RenderingHints getRenderingHints()
Возвращает подсказки рендеринга для этой операции.
final 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 - если ColorModel изображения src является IndexColorModel, или если количество коэффициентов масштабирования и смещений в этом RescaleOp не соответствует требованиям, указанным в комментариях к классу, или если исходное и целевое изображения отличаются по размеру.

filter

public final WritableRaster filter(Raster src, WritableRaster dst)
Масштабирует данные пикселей в источнике Raster. Если целевой Raster равен null, будет создан новый Raster. Источник и назначение должны иметь одинаковое количество каналов. В противном случае бросается исключение IllegalArgumentException. Обратите внимание, что количество коэффициентов масштабирования/смещений в этом объекте должно соответствовать ограничениям, указанным в комментариях к классу. В противном случае бросается исключение IllegalArgumentException.
Указано в:
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)
Возвращает прямоугольник, определяющий границы масштабированного целевого 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, 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

Spec-Zone.ru

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