Класс 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 - если ColorModel src является 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

Spec-Zone .ru
спецификации, руководства, описания, API