Spec-Zone.ru › OpenJDK 27

Класс 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)
Возвращает коэффициенты масштабирования в заданном массиве.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Определяет, равен ли этот объект другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ждать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ждать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ждать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени.

Подробное описание конструкторов

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 с заданными коэффициентом масштабирования и смещением. scaleFactor и offset будут применяться ко всем полосам исходного растра и ко всем компонентам цвета (но не альфа-канала) в 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 с ColorModel источника. Может быть выброшено IllegalArgumentException, если количество коэффициентов масштабирования/смещений в этом объекте не соответствует ограничениям, указанным выше в комментариях к классу, или если исходное изображение имеет IndexColorModel.
Указано в:
filter в интерфейсе BufferedImageOp
Параметры:
src — BufferedImage, подлежащий фильтрации
dst — целевое изображение для операции фильтрации или null
Возвращает:
отфильтрованный BufferedImage.
Выбрасывает:
IllegalArgumentException — если ColorModel у src является IndexColorModel, если количество коэффициентов масштабирования и смещений в этом RescaleOp не соответствует требованиям, указанным в комментариях к классу, или если исходное и целевое изображения имеют разные размеры.

filter

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

getBounds2D

public final Rectangle2D getBounds2D(BufferedImage src)
Возвращает ограничивающий прямоугольник масштабированного целевого изображения. Поскольку эта операция не является геометрической, ограничивающий прямоугольник не изменяется.
Указано в:
getBounds2D в интерфейсе BufferedImageOp
Параметры:
src — BufferedImage, подлежащий фильтрации
Возвращает:
Rectangle2D, представляющий ограничивающий прямоугольник целевого изображения.

getBounds2D

public final Rectangle2D getBounds2D(Raster src)
Возвращает ограничивающий прямоугольник масштабированного целевого растра. Поскольку эта операция не является геометрической, ограничивающий прямоугольник не изменяется.
Указано в:
getBounds2D в интерфейсе RasterOp
Параметры:
src — масштабированный целевой Raster
Возвращает:
границы заданного Raster.

createCompatibleDestImage

public BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel destCM)
Создаёт заполненное нулями целевое изображение с правильными размером и количеством полос.
Указано в:
createCompatibleDestImage в интерфейсе BufferedImageOp
Параметры:
src — исходное изображение для операции фильтрации.
destCM — ColorModel целевого изображения. Если равно null, будет использоваться ColorModel источника.
Возвращает:
целевое изображение, заполненное нулями.

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.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, включая обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.

Spec-Zone.ru

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