Класс RenderingHints
- Все реализуемые интерфейсы:
Cloneable, Map<Object,Object>
public class RenderingHints extends Object implements Map<Object,Object>, Cloneable
RenderingHints определяет и управляет коллекциями ключей и связанных с ними значений, которые позволяют приложению влиять на выбор алгоритмов, используемых другими классами для выполнения операций отрисовки и обработки изображений. Класс Graphics2D, а также классы, реализующие BufferedImageOp и RasterOp, предоставляют методы для получения и, возможно, установки отдельных ключей RenderingHints или их групп и связанных с ними значений. Выполняя операции отрисовки или обработки изображений, эти реализации должны проверять значения всех RenderingHints, запрошенных вызывающей стороной, и по мере своих возможностей адаптировать используемые алгоритмы. Поскольку эти ключи и значения являются подсказками, реализация не обязана поддерживать все перечисленные ниже возможные варианты или реагировать на запросы об изменении выбранного алгоритма. Значения различных ключей подсказок также могут взаимодействовать: хотя в одной ситуации поддерживаются все варианты для данного ключа, при изменении значений, связанных с другими ключами, возможности реализации могут быть ограничены. Например, некоторые реализации могут поддерживать несколько типов дизеринга, когда подсказка сглаживания выключена, но иметь мало возможностей управлять дизерингом при включенном сглаживании. Полный набор поддерживаемых ключей и подсказок также может зависеть от назначения, поскольку среда выполнения может использовать разные базовые модули для отрисовки на экране, в объектах BufferedImage или при печати.
Реализации могут полностью игнорировать подсказки, но им следует по возможности использовать алгоритм, наиболее близкий к запрошенному. Если реализация поддерживает заданный алгоритм при любом значении связанного с ним ключа подсказки, то как минимум она должна поддерживать его, когда значение этого ключа точно указывает на данный алгоритм.
Ключи, используемые для управления подсказками, — это специальные значения, являющиеся подклассами соответствующего класса RenderingHints.Key. Многие распространённые подсказки представлены ниже в виде статических констант этого класса, однако этот список не является исчерпывающим. Другие пакеты могут создавать подсказки, определяя новые объекты — подклассы класса Key, — и определяя связанные с ними значения.
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
RenderingHints.Key |
Определяет базовый тип всех ключей, используемых вместе с классом RenderingHints для управления различными вариантами алгоритмов в конвейерах отрисовки и обработки изображений. |
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final RenderingHints.Key |
KEY_ALPHA_INTERPOLATION |
Ключ подсказки интерполяции альфа-канала. |
static final RenderingHints.Key |
KEY_ANTIALIASING |
Ключ подсказки сглаживания. |
static final RenderingHints.Key |
KEY_COLOR_RENDERING |
Ключ подсказки цветопередачи. |
static final RenderingHints.Key |
KEY_DITHERING |
Ключ подсказки дизеринга. |
static final RenderingHints.Key |
KEY_FRACTIONALMETRICS |
Ключ подсказки дробных метрик шрифта. |
static final RenderingHints.Key |
KEY_INTERPOLATION |
Ключ подсказки интерполяции. |
static final RenderingHints.Key |
KEY_RENDERING |
Ключ подсказки отрисовки. |
static final RenderingHints.Key |
KEY_RESOLUTION_VARIANT |
Ключ подсказки варианта разрешения изображения. |
static final RenderingHints.Key |
KEY_STROKE_CONTROL |
Ключ подсказки управления нормализацией штрихов. |
static final RenderingHints.Key |
KEY_TEXT_ANTIALIASING |
Ключ подсказки сглаживания текста. |
static final RenderingHints.Key |
KEY_TEXT_LCD_CONTRAST |
Ключ подсказки контрастности текста при отрисовке на LCD-дисплее. |
static final Object |
VALUE_ALPHA_INTERPOLATION_DEFAULT |
Значение подсказки интерполяции альфа-канала — алгоритмы смешивания альфа-канала выбираются реализацией для достижения оптимального соотношения производительности и качества. |
static final Object |
VALUE_ALPHA_INTERPOLATION_QUALITY |
Значение подсказки интерполяции альфа-канала — алгоритмы смешивания альфа-канала выбираются с предпочтением точности и визуального качества. |
static final Object |
VALUE_ALPHA_INTERPOLATION_SPEED |
Значение подсказки интерполяции альфа-канала — алгоритмы смешивания альфа-канала выбираются с предпочтением скорости вычислений. |
static final Object |
VALUE_ANTIALIAS_DEFAULT |
Значение подсказки сглаживания — отрисовка выполняется в режиме сглаживания по умолчанию, выбранном реализацией. |
static final Object |
VALUE_ANTIALIAS_OFF |
Значение подсказки сглаживания — отрисовка выполняется без сглаживания. |
static final Object |
VALUE_ANTIALIAS_ON |
Значение подсказки сглаживания — отрисовка выполняется со сглаживанием. |
static final Object |
VALUE_COLOR_RENDER_DEFAULT |
Значение подсказки цветопередачи — вычисления преобразования цветов выполняются способом, выбранным реализацией для достижения наилучшего доступного компромисса между производительностью и точностью. |
static final Object |
VALUE_COLOR_RENDER_QUALITY |
Значение подсказки цветопередачи — вычисления преобразования цветов выполняются с максимальной точностью и визуальным качеством. |
static final Object |
VALUE_COLOR_RENDER_SPEED |
Значение подсказки цветопередачи — преобразование цветов в формат устройства вывода выполняется с максимальной скоростью. |
static final Object |
VALUE_DITHER_DEFAULT |
Значение подсказки дизеринга — используется режим дизеринга по умолчанию, выбранный реализацией. |
static final Object |
VALUE_DITHER_DISABLE |
Значение подсказки дизеринга — при отрисовке геометрических фигур дизеринг не применяется. |
static final Object |
VALUE_DITHER_ENABLE |
Значение подсказки дизеринга — при необходимости дизеринг применяется при отрисовке геометрических фигур. |
static final Object |
VALUE_FRACTIONALMETRICS_DEFAULT |
Значение подсказки дробных метрик шрифта — позиции глифов символов определяются с точностью, выбранной реализацией. |
static final Object |
VALUE_FRACTIONALMETRICS_OFF |
Значение подсказки дробных метрик шрифта — позиции глифов символов определяются с округлением ширины продвижения до границ пикселей. |
static final Object |
VALUE_FRACTIONALMETRICS_ON |
Значение подсказки дробных метрик шрифта — позиции глифов символов определяются с субпиксельной точностью. |
static final Object |
VALUE_INTERPOLATION_BICUBIC |
Значение подсказки интерполяции — цветовые значения 9 ближайших отсчётов изображения с целочисленными координатами интерполируются с помощью кубической функции по обеим осям X и Y для получения цветового отсчёта. |
static final Object |
VALUE_INTERPOLATION_BILINEAR |
Значение подсказки интерполяции — цветовые значения 4 ближайших соседних отсчётов изображения с целочисленными координатами линейно интерполируются для получения цветового отсчёта. |
static final Object |
VALUE_INTERPOLATION_NEAREST_NEIGHBOR |
Значение подсказки интерполяции — используется цветовое значение ближайшего соседнего отсчёта изображения с целочисленными координатами. |
static final Object |
VALUE_RENDER_DEFAULT |
Значение подсказки отрисовки — алгоритмы отрисовки выбираются реализацией для достижения оптимального соотношения производительности и качества. |
static final Object |
VALUE_RENDER_QUALITY |
Значение подсказки отрисовки — алгоритмы отрисовки выбираются с предпочтением качества результата. |
static final Object |
VALUE_RENDER_SPEED |
Значение подсказки отрисовки — алгоритмы отрисовки выбираются с предпочтением скорости выполнения. |
static final Object |
VALUE_RESOLUTION_VARIANT_BASE |
Значение подсказки варианта разрешения изображения — всегда используется стандартное разрешение изображения. |
static final Object |
VALUE_RESOLUTION_VARIANT_DEFAULT |
Значение подсказки варианта разрешения изображения — вариант разрешения изображения выбирается на основе эвристики по умолчанию, которая может зависеть от политик платформы. |
static final Object |
VALUE_RESOLUTION_VARIANT_DPI_FIT |
Значение подсказки варианта разрешения изображения — вариант разрешения изображения выбирается только на основе DPI экрана. |
static final Object |
VALUE_RESOLUTION_VARIANT_SIZE_FIT |
Значение подсказки варианта разрешения изображения — вариант разрешения изображения выбирается на основе DPI экрана и преобразования в контексте Graphics2D. |
static final Object |
VALUE_STROKE_DEFAULT |
Значение подсказки управления нормализацией штрихов — геометрия может изменяться или оставаться неизменной в зависимости от компромиссов, выбранных конкретной реализацией. |
static final Object |
VALUE_STROKE_NORMALIZE |
Значение подсказки управления нормализацией штрихов — геометрию следует нормализовать для повышения равномерности или интервалов между линиями и улучшения общей эстетики. |
static final Object |
VALUE_STROKE_PURE |
Значение подсказки управления нормализацией штрихов — геометрию следует оставить без изменений и отрисовать с субпиксельной точностью. |
static final Object |
VALUE_TEXT_ANTIALIAS_DEFAULT |
Значение подсказки сглаживания текста — текст отрисовывается в соответствии с подсказкой KEY_ANTIALIASING или режимом по умолчанию, выбранным реализацией. |
static final Object |
VALUE_TEXT_ANTIALIAS_GASP |
Значение подсказки сглаживания текста — при отрисовке текста запрашивается использование информации из ресурса шрифта, которая указывает для каждого размера в пунктах, следует ли применять VALUE_TEXT_ANTIALIAS_ON или VALUE_TEXT_ANTIALIAS_OFF. |
static final Object |
VALUE_TEXT_ANTIALIAS_LCD_HBGR |
Значение подсказки сглаживания текста — запрашивается отображение текста с оптимизацией для LCD-дисплея, субпиксели которого расположены слева направо в порядке B,G,R, так что горизонтальное разрешение по субпикселям втрое превышает полное горизонтальное разрешение в пикселях (HBGR). |
static final Object |
VALUE_TEXT_ANTIALIAS_LCD_HRGB |
Значение подсказки сглаживания текста — запрашивается отображение текста с оптимизацией для LCD-дисплея, субпиксели которого расположены слева направо в порядке R,G,B, так что горизонтальное разрешение по субпикселям втрое превышает полное горизонтальное разрешение в пикселях (HRGB). |
static final Object |
VALUE_TEXT_ANTIALIAS_LCD_VBGR |
Значение подсказки сглаживания текста — запрашивается отображение текста с оптимизацией для LCD-дисплея, субпиксели которого расположены сверху вниз в порядке B,G,R, так что вертикальное разрешение по субпикселям втрое превышает полное вертикальное разрешение в пикселях (VBGR). |
static final Object |
VALUE_TEXT_ANTIALIAS_LCD_VRGB |
Значение подсказки сглаживания текста — запрашивается отображение текста с оптимизацией для LCD-дисплея, субпиксели которого расположены сверху вниз в порядке R,G,B, так что вертикальное разрешение по субпикселям втрое превышает полное вертикальное разрешение в пикселях (VRGB). |
static final Object |
VALUE_TEXT_ANTIALIAS_OFF |
Значение подсказки сглаживания текста — текст отрисовывается без каких-либо видов сглаживания. |
static final Object |
VALUE_TEXT_ANTIALIAS_ON |
Значение подсказки сглаживания текста — текст отрисовывается с применением некоторого вида сглаживания. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
RenderingHints |
Создаёт новый объект с указанной парой ключ/значение. |
RenderingHints |
Создаёт новый объект с ключами и значениями, инициализированными из указанного объекта Map, который может быть null. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
add |
Добавляет все ключи и соответствующие им значения из указанного объекта RenderingHints в этот объект RenderingHints. |
void |
clear() |
Удаляет все пары ключ/значение из этого объекта RenderingHints. |
Object |
clone() |
Создает клон этого объекта RenderingHints, содержимое которого совпадает с содержимым этого объекта RenderingHints. |
boolean |
containsKey |
Возвращает true, если этот объект RenderingHints содержит соответствие для указанного ключа. |
boolean |
containsValue |
Возвращает true, если этот объект RenderingHints связывает один или несколько ключей с указанным значением. |
Set |
entrySet() |
Возвращает представление Set соответствий, содержащихся в этом объекте RenderingHints. |
boolean |
equals |
Сравнивает указанный объект Object с этим объектом RenderingHints на предмет равенства. |
Object |
get |
Возвращает значение, с которым связан указанный ключ. |
int |
hashCode() |
Возвращает значение хеш-кода для этого объекта RenderingHints. |
boolean |
isEmpty() |
Возвращает true, если этот объект RenderingHints не содержит соответствий ключ-значение. |
Set |
keySet() |
Возвращает представление Set ключей, содержащихся в этом объекте RenderingHints. |
Object |
put |
Связывает указанный key с указанным value в этом объекте RenderingHints. |
void |
putAll |
Копирует все соответствия из указанного объекта Map в этот объект RenderingHints. |
Object |
remove |
Удаляет ключ и соответствующее ему значение из этого объекта RenderingHints. |
int |
size() |
Возвращает количество соответствий ключ-значение в этом объекте RenderingHints. |
String |
toString() |
Возвращает довольно длинное строковое представление хеш-таблицы, содержащей соответствия ключей значениям для этого объекта RenderingHints. |
Collection |
values() |
Возвращает представление Collection значений, содержащихся в этом объекте RenderingHints. |
Методы, объявленные в классе Object
finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected void |
finalize() |
Устарело, будет удалено: этот элемент API планируется удалить в будущей версии. Финализация объявлена устаревшей и будет удалена в одном из следующих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого объекта Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения определенного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения определенного промежутка реального времени. |
Методы, объявленные в интерфейсе Map
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll | Модификатор и тип | Метод | Описание |
|---|---|---|
default Object |
compute |
Пытается вычислить соответствие для указанного ключа и текущего связанного с ним значения либо null, если текущее соответствие отсутствует (необязательная операция). |
default Object |
computeIfAbsent |
Если указанный ключ еще не связан со значением (или связан с null), пытается вычислить его значение с помощью заданной функции отображения и добавляет его в эту карту, если результат не равен null (необязательная операция). |
default Object |
computeIfPresent |
Если для указанного ключа имеется ненулевое значение, пытается вычислить новое соответствие, используя ключ и текущее связанное с ним значение (необязательная операция). |
default void |
forEach |
Выполняет заданное действие для каждой записи в этой карте, пока не будут обработаны все записи или действие не вызовет исключение. |
default Object |
getOrDefault |
Возвращает значение, с которым связан указанный ключ, либо defaultValue, если в этой карте нет соответствия для данного ключа. |
default Object |
merge |
Если указанный ключ еще не связан со значением или связан со значением null, связывает его с заданным ненулевым значением (необязательная операция). |
default Object |
putIfAbsent |
Если указанный ключ еще не связан со значением (или связан с null), связывает его с заданным значением и возвращает null, иначе возвращает текущее значение (необязательная операция). |
default boolean |
remove |
Удаляет запись для указанного ключа, только если в данный момент он связан с указанным значением (необязательная операция). |
default Object |
replace |
Заменяет запись для указанного ключа, только если в данный момент он связан с каким-либо значением (необязательная операция). |
default boolean |
replace |
Заменяет запись для указанного ключа, только если в данный момент он связан с указанным значением (необязательная операция). |
default void |
replaceAll |
Заменяет значение каждой записи результатом вызова заданной функции для этой записи, пока не будут обработаны все записи или функция не вызовет исключение (необязательная операция). |
Подробное описание полей
KEY_ANTIALIASING
public static final RenderingHints.Key KEY_ANTIALIASING
ANTIALIASING определяет, будут ли методы отрисовки геометрии объекта Graphics2D пытаться уменьшить артефакты алиасинга по краям фигур. Типичный алгоритм сглаживания смешивает существующие цвета пикселей вдоль границы фигуры с заданной заливкой в соответствии с оценочной долей покрытия пикселя фигурой.
Допустимые значения этой подсказки:
VALUE_ANTIALIAS_ON
public static final Object VALUE_ANTIALIAS_ON
- См. также:
VALUE_ANTIALIAS_OFF
public static final Object VALUE_ANTIALIAS_OFF
- См. также:
VALUE_ANTIALIAS_DEFAULT
public static final Object VALUE_ANTIALIAS_DEFAULT
- См. также:
KEY_RENDERING
public static final RenderingHints.Key KEY_RENDERING
RENDERING — это общая рекомендация высокого уровня, указывающая, следует ли при выборе алгоритмов отдавать предпочтение скорости или качеству. Эта подсказка может учитываться при любых операциях отрисовки или обработки изображений, однако при принятии решений обычно отдается предпочтение другим, более конкретным подсказкам. Допустимые значения этой подсказки:
VALUE_RENDER_SPEED
public static final Object VALUE_RENDER_SPEED
- См. также:
VALUE_RENDER_QUALITY
public static final Object VALUE_RENDER_QUALITY
- См. также:
VALUE_RENDER_DEFAULT
public static final Object VALUE_RENDER_DEFAULT
- См. также:
KEY_DITHERING
public static final RenderingHints.Key KEY_DITHERING
DITHERING определяет, насколько точно следует аппроксимировать цвет при сохранении в целевом формате с ограниченным разрешением цветопередачи. Некоторые устройства вывода поддерживают ограниченное число цветов, которых может быть недостаточно для точного представления всего спектра цветов, возникающих при отрисовке. Для таких устройств подсказка DITHERING определяет, выполняется ли отрисовка сплошной заливкой одним значением пикселя, соответствующим ближайшему из доступных цветов, или фигуры будут заливаться узором из цветов, которые в совокупности лучше аппроксимируют заданный цвет.
Допустимые значения этой подсказки:
VALUE_DITHER_DISABLE
public static final Object VALUE_DITHER_DISABLE
- См. также:
VALUE_DITHER_ENABLE
public static final Object VALUE_DITHER_ENABLE
- См. также:
VALUE_DITHER_DEFAULT
public static final Object VALUE_DITHER_DEFAULT
- См. также:
KEY_TEXT_ANTIALIASING
public static final RenderingHints.Key KEY_TEXT_ANTIALIASING
TEXT_ANTIALIASING позволяет независимо от выбора режима отрисовки фигур управлять применением алгоритмов сглаживания текста. Часто приложению может потребоваться сглаживать только текст, но не другие фигуры. Кроме того, алгоритмы уменьшения артефактов алиасинга для текста часто сложнее алгоритмов общей отрисовки, поэтому этот ключ подсказки предоставляет дополнительные значения для управления выбором некоторых специализированных алгоритмов обработки текста. Если для него оставить состояние DEFAULT, эта подсказка обычно будет следовать значению обычного ключа подсказки KEY_ANTIALIASING. Допустимые значения этой подсказки:
VALUE_TEXT_ANTIALIAS_ON
public static final Object VALUE_TEXT_ANTIALIAS_ON
- См. также:
VALUE_TEXT_ANTIALIAS_OFF
public static final Object VALUE_TEXT_ANTIALIAS_OFF
- См. также:
VALUE_TEXT_ANTIALIAS_DEFAULT
public static final Object VALUE_TEXT_ANTIALIAS_DEFAULT
KEY_ANTIALIASING или с настройкой по умолчанию, выбранной реализацией.- См. также:
VALUE_TEXT_ANTIALIAS_GASP
public static final Object VALUE_TEXT_ANTIALIAS_GASP
VALUE_TEXT_ANTIALIAS_ON или VALUE_TEXT_ANTIALIAS_OFF. Шрифты TrueType обычно содержат эти сведения в таблице 'gasp'. Если таких сведений нет, поведение для конкретного шрифта и размера определяется настройками реализации по умолчанию.
Примечание:Дизайнер шрифта обычно тщательно настраивает шрифт для наиболее распространённых размеров пользовательского интерфейса в пунктах. Поэтому таблица 'gasp', вероятно, укажет использовать хинтинг только для этих размеров, но не «сглаживание». Таким образом, во многих случаях отображение текста будет эквивалентно VALUE_TEXT_ANTIALIAS_OFF. Это может показаться неожиданным, но такое поведение является правильным.
Для обеспечения согласованности логические шрифты, составленные из нескольких физических шрифтов, будут использовать настройку, наиболее подходящую для всего составного шрифта.
- Начиная с:
- 1.6
- См. также:
VALUE_TEXT_ANTIALIAS_LCD_HRGB
public static final Object VALUE_TEXT_ANTIALIAS_LCD_HRGB
Примечания:
При выборе того, следует ли применять одно из значений подсказок для ЖК-текста, реализация может учитывать различные факторы. К ним относятся требование к глубине цвета целевого устройства не менее 15 бит на пиксель (то есть 5 бит на цветовой компонент), характеристики шрифта, например возможность улучшить результат с помощью встроенных растровых изображений, а также возможность включить эту функцию при выводе на удалённое сетевое устройство отображения только при наличии подходящих протоколов. Подсказка может игнорироваться при отрисовке с очень высоким разрешением или если целевое устройство не подходит, например при печати.
Эти подсказки можно также применять при отрисовке в программные изображения, однако такие изображения могут оказаться непригодными для общего экспорта, поскольку текст будет отрисован с учётом определённой конфигурации субпикселей. Форматы изображений с потерями также не подходят, как и форматы с ограниченной палитрой, например GIF. Поэтому, если изображение не предназначено исключительно для отображения на устройстве с той же конфигурацией, лучше выбрать другую подсказку сглаживания текста, например VALUE_TEXT_ANTIALIAS_ON.
Выбор значения, не соответствующего используемому ЖК-дисплею, вероятно, приведёт к ухудшению качества текста. На устройствах отображения (например, ЭЛТ), характеристики которых отличаются от характеристик ЖК-дисплеев, общий эффект может быть похож на обычное сглаживание текста, однако цветовые искажения могут снизить качество. Подключённые по аналоговому интерфейсу ЖК-дисплеи также могут почти не давать преимуществ по сравнению с обычным сглаживанием текста и вести себя подобно ЭЛТ.
Иными словами, для достижения наилучших результатов используйте ЖК-дисплей с цифровым разъёмом и указывайте соответствующую конфигурацию субпикселей.
- Начиная с:
- 1.6
- См. также:
VALUE_TEXT_ANTIALIAS_LCD_HBGR
public static final Object VALUE_TEXT_ANTIALIAS_LCD_HBGR
VALUE_TEXT_ANTIALIAS_LCD_HRGB.- Начиная с:
- 1.6
- См. также:
VALUE_TEXT_ANTIALIAS_LCD_VRGB
public static final Object VALUE_TEXT_ANTIALIAS_LCD_VRGB
VALUE_TEXT_ANTIALIAS_LCD_HRGB.- Начиная с:
- 1.6
- См. также:
VALUE_TEXT_ANTIALIAS_LCD_VBGR
public static final Object VALUE_TEXT_ANTIALIAS_LCD_VBGR
VALUE_TEXT_ANTIALIAS_LCD_HRGB, чтобы узнать больше о том, когда применяется эта подсказка.- Начиная с:
- 1.6
- См. также:
KEY_TEXT_LCD_CONTRAST
public static final RenderingHints.Key KEY_TEXT_LCD_CONTRAST
Integer, который используется для настройки контрастности текста совместно с подсказкой сглаживания текста на ЖК-дисплее, например VALUE_TEXT_ANTIALIAS_LCD_HRGB. - Значения должны быть положительными целыми числами в диапазоне от 100 до 250.
- Меньшее значение (например, 100) соответствует более контрастному тексту при отображении тёмного текста на светлом фоне.
- Большее значение (например, 200) соответствует менее контрастному тексту при отображении тёмного текста на светлом фоне.
- Обычно полезные значения лежат в узком диапазоне 140–180.
- Если значение не указано, будет применено системное значение по умолчанию или значение реализации по умолчанию.
- Начиная с:
- 1.6
- См. также:
KEY_FRACTIONALMETRICS
public static final RenderingHints.Key KEY_FRACTIONALMETRICS
FRACTIONALMETRICS управляет тем, учитывается ли при позиционировании отдельных глифов символов субпиксельная точность масштабированных шагов символов шрифта или же такие векторы шага округляются до целого числа целых пикселей устройства. Эта подсказка лишь рекомендует, какую точность следует использовать для позиционирования глифов, и не указывает и не рекомендует, нужно ли изменять собственно растеризацию или границы пикселей глифа в соответствии с ней. При отрисовке текста на устройстве с низким разрешением, например на экране, неизбежно выполняется ряд операций округления: высококачественное и очень точное описание формы и метрик глифов символов необходимо согласовать с дискретными пикселями устройства. В идеале позиционирование глифов при компоновке текста рассчитывалось бы путём масштабирования проектных метрик шрифта в соответствии с размером в пунктах, однако масштабированная ширина шага не обязательно будет целым числом пикселей. Если глифы позиционируются с субпиксельной точностью на основе этих масштабированных проектных метрик, то в идеале растеризацию следовало бы корректировать для каждого возможного субпиксельного начала координат.
К сожалению, масштабирование каждого глифа с учётом его точного субпиксельного положения при компоновке текста было бы чрезмерно затратным, поэтому для компоновки текста обычно используется упрощённая система, основанная на целочисленных координатах устройства. Растеризация глифа и масштабированная ширина шага одновременно корректируются так, чтобы текст хорошо выглядел с разрешением устройства, а расстояния в целых пикселях между глифами были постоянными, помогая добиться равномерных интервалов между глифами и удобочитаемости.
Округление ширины шага растеризованных глифов до целых расстояний означает, что плотность символов и общая длина строки текста будут отличаться от теоретических проектных измерений из-за накопления ряда небольших различий в скорректированной ширине каждого глифа. Конкретные различия для каждого глифа будут разными: некоторые окажутся шире, а некоторые уже своих теоретических проектных размеров. Таким образом, общее различие плотности символов и длины будет зависеть от ряда факторов, включая шрифт, целевое разрешение конкретного устройства и выбранные для отображения строки глифы. В результате отрисовка одной и той же строки при нескольких разрешениях устройства может давать сильно различающиеся метрики для строк целиком.
Если включены FRACTIONALMETRICS, истинные проектные метрики шрифта масштабируются в соответствии с размером в пунктах и используются при компоновке с субпиксельной точностью. Поэтому средняя плотность глифов и общая длина длинной строки символов будут ближе соответствовать теоретическому проекту шрифта, однако удобочитаемость может ухудшиться: отдельные пары символов не всегда будут находиться на одинаковом расстоянии друг от друга в зависимости от того, как накопление субпиксельных смещений начала глифов соотносится с сеткой пикселей устройства. Включение этой подсказки может быть желательным, если компоновка текста должна оставаться согласованной при широком диапазоне разрешений вывода. В частности, эта подсказка может быть полезна в ситуациях, когда компоновка текста предварительно просматривается на устройстве с низким разрешением, например на экране, а впоследствии будет отображена на принтере или устройстве для набора текста с высоким разрешением.
Если подсказка отключена, масштабированные проектные метрики округляются или корректируются до целых расстояний при компоновке. Расстояния между конкретными парами глифов на устройстве будут более равномерными, однако плотность и общая длина длинных строк могут перестать соответствовать теоретическим замыслам разработчика шрифта. Отключение этой подсказки обычно повышает удобочитаемость на устройствах с низким разрешением, например на компьютерных мониторах.
Допустимые значения этого ключа:
VALUE_FRACTIONALMETRICS_OFF
public static final Object VALUE_FRACTIONALMETRICS_OFF
- См. также:
VALUE_FRACTIONALMETRICS_ON
public static final Object VALUE_FRACTIONALMETRICS_ON
- См. также:
VALUE_FRACTIONALMETRICS_DEFAULT
public static final Object VALUE_FRACTIONALMETRICS_DEFAULT
- См. также:
KEY_INTERPOLATION
public static final RenderingHints.Key KEY_INTERPOLATION
INTERPOLATION управляет фильтрацией или передискретизацией пикселей изображения при его отрисовке. Неявно предполагается, что изображения содержат цветовые отсчёты в целочисленных координатах. При отрисовке изображений без масштабирования и преобразований вопрос о том, какие пиксели изображения соответствуют каким пикселям устройства, решается очевидным образом: отсчёты в целочисленных координатах изображения переносятся один к одному в пиксели, расположенные в соответствующих целочисленных координатах сетки пикселей устройства. Если изображение отрисовывается в масштабированной, повёрнутой или иным образом преобразованной системе координат, при обратном преобразовании координат пикселей устройства в координаты изображения возникает вопрос о том, какой цветовой отсчёт использовать для непрерывных координат между целочисленными координатами предоставленных отсчётов изображения. Алгоритмы интерполяции задают функции, которые вычисляют цветовой отсчёт для любых непрерывных координат изображения на основе цветовых отсчётов в окружающих целочисленных координатах.
Допустимые значения этой подсказки:
VALUE_INTERPOLATION_NEAREST_NEIGHBOR
public static final Object VALUE_INTERPOLATION_NEAREST_NEIGHBOR
При увеличении изображения оно будет выглядеть соответственно пиксельным. При уменьшении изображения цвета исходных пикселей либо будут использоваться без изменений, либо полностью пропускаться в результирующем представлении.
- См. также:
VALUE_INTERPOLATION_BILINEAR
public static final Object VALUE_INTERPOLATION_BILINEAR
При увеличении изображения между его цветами не возникают пиксельные границы, как при использовании NEAREST_NEIGHBOR, однако на горизонтальных и вертикальных границах, совпадающих с отсчётами, могут появляться едва заметные разрывы из-за резкого изменения наклона интерполяции при переходе от одной стороны отсчёта к другой. При уменьшении изображения в результирующем изображении представлено больше цветовых отсчётов исходных пикселей, поскольку каждый выходной пиксель получает цветовую информацию максимум от четырёх пикселей изображения.
- См. также:
VALUE_INTERPOLATION_BICUBIC
public static final Object VALUE_INTERPOLATION_BICUBIC
X и Y для получения цветового отсчёта. Концептуальное представление изображения очень похоже на представление, используемое в алгоритме BILINEAR, за исключением того, что цветовые переходы между отсчётами имеют криволинейную форму и более плавно изменяют наклон при пересечении границ отсчётов. При увеличении изображения не возникает пиксельных границ, а интерполяция должна выглядеть более плавной и лучше отображать границы исходного изображения, чем BILINEAR. При уменьшении изображения ещё больше исходных цветовых отсчётов сохраняют свою цветовую информацию в итоговом представлении.
- См. также:
KEY_ALPHA_INTERPOLATION
public static final RenderingHints.Key KEY_ALPHA_INTERPOLATION
ALPHA_INTERPOLATION содержит общую рекомендацию высокого уровня о том, следует ли при выборе алгоритма альфа-смешивания отдавать предпочтение скорости или качеству. Эта подсказка может управлять выбором вычислений альфа-смешивания, в которых ради скорости используются таблицы предварительно вычисленных значений или инструкции SIMD с меньшей точностью. Она также может управлять преобразованием значений цвета и альфа-канала в линейное цветовое пространство во время вычислений, что обеспечивает более линейный визуальный эффект ценой дополнительных вычислений для каждого пикселя.
Допустимые значения этой подсказки:
VALUE_ALPHA_INTERPOLATION_SPEED
public static final Object VALUE_ALPHA_INTERPOLATION_SPEED
- См. также:
VALUE_ALPHA_INTERPOLATION_QUALITY
public static final Object VALUE_ALPHA_INTERPOLATION_QUALITY
- См. также:
VALUE_ALPHA_INTERPOLATION_DEFAULT
public static final Object VALUE_ALPHA_INTERPOLATION_DEFAULT
- См. также:
KEY_COLOR_RENDERING
public static final RenderingHints.Key KEY_COLOR_RENDERING
COLOR_RENDERING управляет точностью аппроксимации и преобразования при сохранении цветов в целевое изображение или на целевую поверхность. Когда операция отрисовки или обработки изображения создает значение цвета, которое необходимо сохранить в целевом объекте, этот цвет сначала необходимо преобразовать в форму, подходящую для сохранения в целевом изображении или на целевой поверхности. Как минимум, компоненты цвета необходимо преобразовать в битовые представления и упорядочить в правильном порядке либо выбрать индекс в таблице поиска цветов, прежде чем данные можно будет сохранить в целевой памяти. Без этого минимального преобразования данные в целевом объекте, скорее всего, будут представлять случайные, некорректные или даже неподдерживаемые значения. Хорошо известны алгоритмы быстрого преобразования результатов операций отрисовки в цветовой формат наиболее распространенных целевых устройств, и их выполнение достаточно эффективно.
Простое выполнение самого базового преобразования цветового формата для сохранения цветов в целевом объекте может не учитывать различие в калибровке ColorSpace источника и целевого объекта или другие факторы, например линейность гамма-коррекции. Если ColorSpace источника и целевого объекта не идентичны, то для корректного выполнения операции отрисовки с максимальной точностью представления цветов цвета источника следует преобразовать в независимое от устройства ColorSpace, а результаты затем преобразовать обратно в ColorSpace целевого устройства. Кроме того, если во время операции отрисовки необходимо выполнить такие вычисления, как смешивание нескольких цветов источника, большей визуальной четкости можно добиться, выбрав для промежуточного независимого от устройства ColorSpace линейную зависимость между вычисляемыми значениями и восприятием человеческим глазом характеристик отклика выходного устройства.
Допустимые значения этой подсказки:
VALUE_COLOR_RENDER_SPEED
public static final Object VALUE_COLOR_RENDER_SPEED
- См. также:
VALUE_COLOR_RENDER_QUALITY
public static final Object VALUE_COLOR_RENDER_QUALITY
- См. также:
VALUE_COLOR_RENDER_DEFAULT
public static final Object VALUE_COLOR_RENDER_DEFAULT
- См. также:
KEY_STROKE_CONTROL
public static final RenderingHints.Key KEY_STROKE_CONTROL
STROKE_CONTROL определяет, следует ли реализации отрисовки и разрешено ли ей изменять геометрию отрисовываемых фигур для различных целей. Некоторые реализации могут использовать оптимизированную библиотеку отрисовки платформы, которая на данной платформе может работать быстрее традиционных программных алгоритмов отрисовки, но при этом может не поддерживать координаты с плавающей точкой. В некоторых реализациях также могут использоваться сложные алгоритмы, изменяющие координаты контура, чтобы широкие линии выглядели более равномерными по ширине и интервалам.
Если реализация выполняет какие-либо изменения или «нормализацию» контура, координаты ни в каком направлении не должны смещаться более чем на половину пикселя.
Допустимые значения этой подсказки:
- Начиная с версии:
- 1.3
VALUE_STROKE_DEFAULT
public static final Object VALUE_STROKE_DEFAULT
- Начиная с версии:
- 1.3
- См. также:
VALUE_STROKE_NORMALIZE
public static final Object VALUE_STROKE_NORMALIZE
- Начиная с версии:
- 1.3
- См. также:
VALUE_STROKE_PURE
public static final Object VALUE_STROKE_PURE
- Начиная с версии:
- 1.3
- См. также:
KEY_RESOLUTION_VARIANT
public static final RenderingHints.Key KEY_RESOLUTION_VARIANT
RESOLUTION_VARIANT определяет, какой вариант разрешения изображения следует выбрать для его отрисовки.
- Начиная с версии:
- 9
VALUE_RESOLUTION_VARIANT_DEFAULT
public static final Object VALUE_RESOLUTION_VARIANT_DEFAULT
- Начиная с версии:
- 9
- См. также:
VALUE_RESOLUTION_VARIANT_BASE
public static final Object VALUE_RESOLUTION_VARIANT_BASE
- Начиная с версии:
- 9
- См. также:
VALUE_RESOLUTION_VARIANT_SIZE_FIT
public static final Object VALUE_RESOLUTION_VARIANT_SIZE_FIT
- Начиная с версии:
- 9
- См. также:
VALUE_RESOLUTION_VARIANT_DPI_FIT
public static final Object VALUE_RESOLUTION_VARIANT_DPI_FIT
- Начиная с версии:
- 9
- См. также:
Подробное описание конструкторов
RenderingHints
public RenderingHints(Map<RenderingHints.Key, ?> init)
- Параметры:
-
init— карта пар «ключ/значение» для инициализации подсказок или null, если объект должен быть пустым
RenderingHints
public RenderingHints(RenderingHints.Key key, Object value)
- Параметры:
-
key— ключ свойства подсказки -
value— значение свойства подсказки, заданного с помощьюkey
Подробное описание методов
size
isEmpty
containsKey
public boolean containsKey(Object key)
true, если этот RenderingHints содержит сопоставление для указанного ключа.- Определено в:
-
containsKeyв интерфейсеMap<Object,Object> - Параметры:
-
key— ключ, наличие которого в этомRenderingHintsпроверяется. - Возвращает:
-
true, если этотRenderingHintsсодержит сопоставление для указанного ключа. - Вызывает исключение:
-
ClassCastException— если ключ нельзя привести к типуRenderingHints.Key
containsValue
public boolean containsValue(Object value)
true тогда и только тогда, когда этот RenderingHints содержит хотя бы одно сопоставление со значением v, для которого выполняется условие (value==null ? v==null : value.equals(v)). Для большинства реализаций
RenderingHints эта операция, вероятно, потребует времени, линейно зависящего от размера RenderingHints.- Определено в:
-
containsValueв интерфейсеMap<Object,Object> - Параметры:
-
value— значение, наличие которого в этомRenderingHintsпроверяется. - Возвращает:
-
true, если этотRenderingHintsсопоставляет один или несколько ключей указанному значению.
get
public Object get(Object key)
- Определено в:
-
getв интерфейсеMap<Object,Object> - Параметры:
-
key— ключ подсказки отрисовки - Возвращает:
- значение, сопоставленное ключу в этом объекте, или
null, если ключу в этом объекте не сопоставлено никакое значение. - Вызывает исключение:
-
ClassCastException— если ключ нельзя привести к типуRenderingHints.Key - См. также:
put
public Object put(Object key, Object value)
key с указанным value в этом объекте RenderingHints. Ни ключ, ни значение не могут быть null. Значение можно получить, вызвав метод get с ключом, равным исходному ключу.- Указано в:
-
putв интерфейсеMap<Object,Object> - Параметры:
-
key— ключ подсказки отрисовки. -
value— значение подсказки отрисовки. - Возвращает:
- предыдущее значение указанного ключа в этом объекте или
null, если значение отсутствовало. - Вызывает:
-
NullPointerException— если ключ равенnull. -
ClassCastException— если ключ нельзя привести к типуRenderingHints.Key -
IllegalArgumentException— если методKey.isCompatibleValue()указанного ключа возвращает false для указанного значения - См. также:
add
public void add(RenderingHints hints)
RenderingHints в этот объект RenderingHints. Ключи, присутствующие в этом объекте RenderingHints, но отсутствующие в указанном объекте RenderingHints, не изменяются.- Параметры:
-
hints— набор пар «ключ/значение», которые нужно добавить в этот объектRenderingHints
clear
remove
public Object remove(Object key)
RenderingHints. Если ключ отсутствует в этом объекте RenderingHints, метод ничего не делает.- Указано в:
-
removeв интерфейсеMap<Object,Object> - Параметры:
-
key— ключ подсказки отрисовки, который необходимо удалить - Возвращает:
- значение, с которым ключ был связан ранее в этом объекте
RenderingHints, илиnull, если ключ не был связан ни с каким значением. - Вызывает:
-
ClassCastException— если ключ нельзя привести к типуRenderingHints.Key
putAll
public void putAll(Map<?,?> m)
Map в этот объект RenderingHints. Эти соответствия заменяют все соответствия, которые этот объект RenderingHints содержал для ключей, присутствующих в указанном объекте Map.- Указано в:
-
putAllв интерфейсеMap<Object,Object> - Параметры:
-
m— указанный объектMap - Вызывает:
-
ClassCastException— класс ключа или значения в указанном объектеMapне позволяет сохранить его в этом объектеRenderingHints. -
IllegalArgumentException— некоторые свойства ключа или значения в указанном объектеMapне позволяют сохранить его в этом объектеRenderingHints.
keySet
public Set<Object> keySet()
Set ключей, содержащихся в этом объекте RenderingHints. Множество связано с объектом RenderingHints, поэтому изменения объекта RenderingHints отражаются в множестве Set, и наоборот. Если объект RenderingHints изменяется во время итерации по Set, результаты итерации не определены. Объект Set поддерживает удаление элементов, которое удаляет соответствующее соответствие из объекта RenderingHints с помощью операций Iterator.remove, Set.remove, removeAll retainAll и clear. Операции add и addAll не поддерживаются.values
public Collection<Object> values()
Collection значений, содержащихся в этом объекте RenderingHints. Объект Collection связан с объектом RenderingHints, поэтому изменения объекта RenderingHints отражаются в объекте Collection, и наоборот. Если объект RenderingHints изменяется во время итерации по Collection, результаты итерации не определены. Объект Collection поддерживает удаление элементов, которое удаляет соответствующее соответствие из объекта RenderingHints с помощью операций Iterator.remove, Collection.remove, removeAll, retainAll и clear. Операции add и addAll не поддерживаются.entrySet
public Set<Map.Entry<Object,Object>> entrySet()
Set соответствий, содержащихся в этом объекте RenderingHints. Каждый элемент возвращаемого объекта Set является объектом Map.Entry. Объект Set связан с объектом RenderingHints, поэтому изменения объекта RenderingHints отражаются в объекте Set. Если объект RenderingHints изменяется во время итерации по Set, результаты итерации не определены. Набор записей, возвращаемый объектом RenderingHints, нельзя изменять.
equals
public boolean equals(Object o)
Object с этим объектом RenderingHints на равенство. Возвращает true, если указанный объект также является объектом Map и эти два объекта Map представляют одинаковые соответствия. Более формально, два объекта Map t1 и t2 представляют одинаковые соответствия, если t1.keySet().equals(t2.keySet()) и для каждого ключа k в t1.keySet() выполняется (t1.get(k)==null ? t2.get(k)==null : t1.get(k).equals(t2.get(k))). Это гарантирует корректную работу метода
equals с различными реализациями интерфейса Map.hashCode
public int hashCode()
RenderingHints. Хеш-код объекта RenderingHints определяется как сумма хеш-кодов каждого объекта Entry в представлении entrySet объекта RenderingHints. Это гарантирует, что t1.equals(t2) подразумевает t1.hashCode()==t2.hashCode() для любых двух объектов Map t1 и t2, как того требует общий контракт метода Object.hashCode.clone
toString
© 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.