Класс RenderingHints
- Все реализованные интерфейсы:
-
Cloneable,Map<Object,Object>
public class RenderingHints extends Object implements Map<Object,Object>, Cloneable
RenderingHints определяет и управляет коллекциями ключей и соответствующих значений, которые позволяют приложению предоставлять входные данные в выбор алгоритмов, используемых другими классами, выполняющими операции рендеринга и обработки изображений. Класс Graphics2D и классы, реализующие BufferedImageOp и RasterOp, предоставляют методы для получения и, возможно, для установки отдельных или групп ключей RenderingHints и их соответствующих значений. При выполнении операций рендеринга или обработки изображений эти реализации должны проверять значения всех ключей RenderingHints, запрошенных вызывающим объектом, и адаптировать используемые алгоритмы в соответствии с ними и по возможности наилучшим образом. Обратите внимание, что поскольку эти ключи и значения являются подсказками, нет требования, чтобы данная реализация поддерживала все возможные варианты, указанные ниже, или чтобы она могла реагировать на запросы по изменению своего выбора алгоритма. Значения различных ключей подсказок также могут взаимодействовать таким образом, что, в то время как все варианты данного ключа поддерживаются в одной ситуации, реализация может быть более ограниченной, когда значения, связанные с другими ключами, изменяются. Например, некоторые реализации могут предоставить несколько типов дithering, когда подсказка антиалиасинга выключена, но имеют мало контроля над дithering, когда антиалиасинг включен. Полный набор поддерживаемых ключей и подсказок также может варьироваться в зависимости от места назначения, поскольку runtime может использовать разные базовые модули для рендеринга на экране или в 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 |
Ключ подсказки дithering. |
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 |
Ключ подсказки рендеринга контраста текста на ЖК-дисплее. |
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 |
Значение подсказки dithering — используется значение по умолчанию, выбранное реализацией. |
static final Object |
VALUE_DITHER_DISABLE |
Значение подсказки dithering — не использовать dithering при рендеринге геометрии. |
static final Object |
VALUE_DITHER_ENABLE |
Значение подсказки dithering — использовать dithering при рендеринге геометрии, если это необходимо. |
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 |
Значение подсказки антиалиасинга текста — запрос на отображение текста, оптимизированного для ЖК-дисплея с субпикселями в порядке слева направо B,G,R, таком, что горизонтальное разрешение субпикселей в три раза превышает горизонтальное разрешение полного пикселя (HBGR). |
static final Object |
VALUE_TEXT_ANTIALIAS_LCD_HRGB |
Значение подсказки антиалиасинга текста — запрос на отображение текста, оптимизированного для ЖК-дисплея с субпикселями в порядке слева направо R,G,B, таком, что горизонтальное разрешение субпикселей в три раза превышает горизонтальное разрешение полного пикселя (HRGB). |
static final Object |
VALUE_TEXT_ANTIALIAS_LCD_VBGR |
Значение подсказки антиалиасинга текста — запрос на отображение текста, оптимизированного для ЖК-дисплея с субпикселями в порядке сверху вниз B,G,R, таком, что вертикальное разрешение субпикселей в три раза превышает вертикальное разрешение полного пикселя (VBGR). |
static final Object |
VALUE_TEXT_ANTIALIAS_LCD_VRGB |
Значение подсказки антиалиасинга текста — запрос на отображение текста, оптимизированного для ЖК-дисплея с субпикселями в порядке сверху вниз 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. |
Методы, объявленные в классе java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Методы, объявленные в интерфейсе java.util.Map
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, 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
- См. также:
Значение подсказки антиалиасинга текста для ЖК-дисплея HRGB
public static final Object VALUE_TEXT_ANTIALIAS_LCD_HRGB
Примечания:
Реализация при выборе, применять ли любое из значений подсказок текста для ЖК-дисплея, может учитывать факторы, включая необходимость глубины цвета назначения не менее 15 бит на пиксель (то есть 5 бит на цветовой компонент), характеристики шрифта, такие как возможность встраивания битовых карт для получения лучших результатов, или отображение на удалённом сетевом дисплее, разрешая это только в случае наличия соответствующих протоколов, или игнорирование подсказки при выполнении рендеринга с очень высоким разрешением или если целевое устройство не подходит: например, при печати.
Эти подсказки могут быть применены и при рендеринге в программные изображения, но эти изображения могут не подходить для общей экспортной задачи, так как текст будет рендерирован соответствующим образом для определённой организации субпикселей. Также не следует использовать сжатые изображения или форматы изображений, такие как GIF, имеющие ограниченное количество цветов. Поэтому, если изображение предназначено исключительно для рендеринга на устройстве отображения с той же конфигурацией, может быть предпочтительнее использовать другую подсказку антиалиасинга текста, такую как VALUE_TEXT_ANTIALIAS_ON.
Выбор значения, не соответствующего используемому ЖК-дисплею, скорее всего, приведёт к ухудшению качества текста. На устройствах отображения (например, CRT), не обладающих такими же характеристиками, как ЖК-дисплеи, общий эффект может быть аналогичен стандартному антиалиасингу текста, но качество может быть ухудшено искажением цвета. У ЖК-дисплеев с аналоговым подключением преимущества перед стандартным антиалиасингом текста также могут быть незначительными и аналогичны CRT.
Другими словами, для достижения наилучших результатов используйте ЖК-дисплей с цифровым разъёмом и укажите соответствующую конфигурацию субпикселей.
- С:
- 1.6
- См. также:
Значение подсказки антиалиасинга текста для ЖК-дисплея HBGR
public static final Object VALUE_TEXT_ANTIALIAS_LCD_HBGR
VALUE_TEXT_ANTIALIAS_LCD_HRGB для получения дополнительной информации о применении этой подсказки.- С:
- 1.6
- См. также:
Значение подсказки антиалиасинга текста для ЖК-дисплея VRGB
public static final Object VALUE_TEXT_ANTIALIAS_LCD_VRGB
VALUE_TEXT_ANTIALIAS_LCD_HRGB для получения дополнительной информации о применении этой подсказки.- С:
- 1.6
- См. также:
Значение подсказки антиалиасинга текста для ЖК-дисплея VBGR
public static final Object VALUE_TEXT_ANTIALIAS_LCD_VBGR
VALUE_TEXT_ANTIALIAS_LCD_HRGB для получения дополнительной информации о применении этой подсказки.- С:
- 1.6
- См. также:
Ключ подсказки рендеринга контраста текста ЖК-дисплея
public static final RenderingHints.Key KEY_TEXT_LCD_CONTRAST
Integer объект, используемый для регулировки контраста текста при использовании подсказки антиалиасинга текста ЖК-дисплея, такой как VALUE_TEXT_ANTIALIAS_LCD_HRGB. - Значения должны быть положительными целыми числами в диапазоне от 100 до 250.
- Меньшее значение (например, 100) соответствует более высокому контрасту текста при отображении тёмного текста на светлом фоне.
- Большее значение (например, 200) соответствует более низкому контрасту текста при отображении тёмного текста на светлом фоне.
- Типичное полезное значение находится в узком диапазоне 140-180.
- Если значение не указано, будет применено системное или реализуемое значение по умолчанию.
- С:
- 1.6
- См. также:
Ключ подсказки дробных метрик шрифта
public static final RenderingHints.Key KEY_FRACTIONALMETRICS
FRACTIONALMETRICS контролирует, учитывается ли при позиционировании отдельных глифов шрифта субпиксельная точность масштабированных значений продвижения символов или эти векторы продвижения округляются до целого числа устройств пикселей. Эта подсказка лишь рекомендует, насколько высокая точность должна использоваться для позиционирования глифов и не указывает или не рекомендует, следует ли изменять фактическое растрирование или пиксельные границы глифов, чтобы соответствовать им. Отображение текста на устройстве с низким разрешением, таком как экран, неизбежно предполагает ряд операций округления, так как высокая точность и очень точное определение формы и метрик глифов символов должны соответствовать дискретным пикселям устройства. В идеале позиционирование глифов при верстке текста должно рассчитываться путём масштабирования метрик дизайна шрифта в соответствии с размером шрифта, но масштабированная ширина продвижения не обязательно будет целым числом пикселей. Если глифы позиционируются с субпиксельной точностью в соответствии с этими масштабированными метриками дизайна, то для каждого возможного начала субпикселя необходимо будет скорректировать растрирование.
К сожалению, масштабирование каждого глифа, настроенного на его точное начало субпикселя при верстке текста, было бы слишком дорогостоящим, поэтому обычно используется упрощённая система, основанная на целочисленных позициях устройства для верстки текста. Растрирование глифа и масштабированная ширина продвижения корректируются вместе, чтобы получить текст, который выглядит хорошо при разрешении устройства, и имеет согласованные целые пиксельные расстояния между глифами, которые помогают глифам выглядеть равномерно и последовательно расположенными и читаемыми.
Этот процесс округления значений продвижения для растрированных глифов до целых расстояний означает, что плотность символов и общая длина строки текста будут отличаться от теоретических проектных измерений из-за накопления серии малых различий в скорректированных ширинах каждого глифа. Уникальные различия будут разными для каждого глифа, некоторые будут шире, а некоторые уже своих теоретических проектных измерений. Таким образом, общее различие в плотности символов и длине будет зависеть от ряда факторов, включая шрифт, целевое разрешение конкретного устройства и выбранные глифы для представления рендерируемой строки. В результате рендеринг той же строки на разных разрешениях устройств может привести к существенно различающимся метрикам для целых строк.
Когда 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_INTERПОЛЯЦИЯ
public static final RenderingHints.Key KEY_INTERPOLATION
INTERPOLATION управляет тем, как пиксели изображения фильтруются или повторно образцуются во время операции рендеринга изображения. Неявным образом предполагается, что изображения предоставляют цветовые образцы в целочисленных координатах. Когда изображения рендерятся вертикально без масштабирования на целевой объект, выбор того, какие пиксели изображения отображаются на каких пиксели устройства, очевиден, и образцы в целочисленных координатах изображения передаются на пиксели в соответствующих целочисленных координатах на сетке пикселей устройства один к одному. Когда изображения рендерятся в масштабируемой, вращаемой или преобразованной системе координат, отображение координат пикселей устройства обратно на изображение может поставить вопрос о том, какой цветовой образец использовать для непрерывных координат, которые лежат между целочисленными позициями предоставленных образцов изображения. Алгоритмы интерполяции определяют функции, которые предоставляют цветовой образец для любой непрерывной координаты в изображении на основе цветовых образцов в окружающих целочисленных координатах.
Допустимые значения для этой подсказки:
VALUE_INTERПОЛЯЦИЯ_НАИБЛИЖАЙШИЙ_СОСЕД
public static final Object VALUE_INTERPOLATION_NEAREST_NEIGHBOR
При увеличении масштаба изображения оно будет выглядеть соответствующим образом блочным. При уменьшении масштаба изображения цвета исходных пикселей будут использоваться без изменений или будут полностью пропущены в представлении результата.
- См. также:
VALUE_БИЛИНЕЙНАЯ_ИНТЕРПОЛЯЦИЯ
public static final Object VALUE_INTERPOLATION_BILINEAR
При увеличении масштаба изображения нет блочных границ между цветами в изображении, как в случае с NEAREST_NEIGHBOR, но сглаживание может показывать некоторые незначительные разрывы вдоль горизонтальных и вертикальных границ, совпадающих с образцами, вызванными внезапным изменением наклона интерполяции с одной стороны образца на другую. При уменьшении масштаба изображения больше пикселей изображения имеют свои цветовые образцы, представленные в результирующем выводе, поскольку каждый выходной пиксель получает цветовую информацию от до 4 пикселей изображения.
- См. также:
VALUE_БИКУБИЧЕСКАЯ_ИНТЕРПОЛЯЦИЯ
public static final Object VALUE_INTERPOLATION_BICUBIC
X, так и по Y для получения цветового образца. Концептуально изображение рассматривается очень похоже на изображение, используемое в алгоритме BILINEAR, за исключением того, что градиенты цветов, соединяющие между образцами, изогнуты и имеют лучшую непрерывность наклона при пересечении границ образцов. При увеличении масштаба изображения нет блочных границ, и интерполяция должна выглядеть более плавной и с лучшим изображением любых границ в исходном изображении, чем с BILINEAR. При уменьшении масштаба изображения еще больше исходных цветовых образцов из исходного изображения будут переданы и представлены.
- См. также:
KEY_ИНТЕРПОЛЯЦИЯ_АЛЬФА
public static final RenderingHints.Key KEY_ALPHA_INTERPOLATION
ALPHA_INTERPOLATION — это общая подсказка, которая дает общее рекомендацию о том, стоит ли больше ориентироваться на скорость или качество алгоритмов смешивания альфа-канала при оценке компромиссов. Эта подсказка может управлять выбором вычислений смешивания альфа-канала, которые жертвуют некоторой точностью для использования быстрых таблиц поиска или инструкций SIMD с меньшей точностью. Эта подсказка также может управлять тем, конвертируются ли значения цвета и альфа-канала в линейное цветовое пространство во время вычислений для более линейного визуального эффекта за счет дополнительных вычислений на каждый пиксель.
Допустимые значения для этой подсказки:
VALUE_АЛЬФА_ИНТЕРПОЛЯЦИЯ_СКОРОСТЬ
public static final Object VALUE_ALPHA_INTERPOLATION_SPEED
- См. также:
VALUE_АЛЬФА_ИНТЕРПОЛЯЦИЯ_КАЧЕСТВО
public static final Object VALUE_ALPHA_INTERPOLATION_QUALITY
- См. также:
VALUE_АЛЬФА_ИНТЕРПОЛЯЦИЯ_ПО_УМОЛЧАНИЮ
public static final Object VALUE_ALPHA_INTERPOLATION_DEFAULT
- См. также:
KEY_РЕНДЕРИНГ_ЦВЕТА
public static final RenderingHints.Key KEY_COLOR_RENDERING
COLOR_RENDERING управляет точностью приближения и преобразования при сохранении цветов в целевом изображении или поверхности. Когда операция рендеринга или обработки изображения генерирует значение цвета, которое должно быть сохранено в целевом объекте, оно сначала должно преобразовать этот цвет в форму, подходящую для хранения в целевом изображении или поверхности. Минимально, цветовые компоненты должны быть преобразованы в битовые представления и упорядочены в правильном порядке, или должен быть выбран индекс в таблицу поиска цветов, прежде чем данные могут быть сохранены в целевой памяти. Без этого минимального преобразования данные в целевом объекте, скорее всего, будут представлять случайные, неправильные или, возможно, даже неподдерживаемые значения. Алгоритмы быстрого преобразования результатов операций рендеринга в цветовой формат наиболее распространенных целевых объектов хорошо известны и довольно оптимальны для выполнения.
Простое выполнение самого базового преобразования цветовых форматов для хранения цветов в целевом объекте может потенциально игнорировать разницу в калибровке ColorSpace источника и назначения или другие факторы, такие как линейность гамма-коррекции. Если источник и назначение ColorSpace не идентичны, для корректного выполнения операции рендеринга с максимальной заботой о точности представляемых цветов цвета источника должны быть преобразованы в независимую от устройства ColorSpace, а результаты затем преобразованы обратно в целевое ColorSpace. Кроме того, если во время операции рендеринга должны выполняться вычисления, такие как смешивание нескольких цветовых источников, для достижения большей визуальной ясности, если промежуточное устройство, независимое от устройства ColorSpace, выбирается таким образом, чтобы существовала линейная зависимость между вычисляемыми значениями и восприятием человеком кривых отклика выходного устройства.
Допустимые значения для этой подсказки:
VALUE_СКОРОСТЬ_РЕНДЕРИНГА_ЦВЕТА
public static final Object VALUE_COLOR_RENDER_SPEED
- См. также:
VALUE_КАЧЕСТВО_РЕНДЕРИНГА_ЦВЕТА
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- ключ конкретного свойства подсказки -
key- значение свойства подсказки, указанного сvalue
Подробное описание методов
size
isEmpty
containsKey
public boolean containsKey(Object key)
- Определено в:
-
containsKeyв интерфейсеMap<Object,Object> - Параметры:
-
key- ключ, чьё присутствие в этом объекте необходимо проверить. - Возвращает:
- true, если этот объект содержит сопоставление для указанного ключа.
- Исключения:
-
ClassCastException- если ключ не может быть преобразован к типуRenderingHints.Key
containsValue
public boolean containsValue(Object value)
- Определено в:
-
containsValueв интерфейсеMap<Object,Object> - Параметры:
-
value- значение, чьё присутствие в этом объекте необходимо проверить. - Возвращает:
- true, если этот объект отображает один или несколько ключей на указанное значение.
get
public Object get(Object key)
- Определено в:
-
getв интерфейсеMap<Object,Object> - Параметры:
-
key- ключ подсказки рендеринга - Возвращает:
- значение, которому сопоставлен ключ в этом объекте, или null, если ключ не сопоставлен ни с каким значением в этом объекте.
- Исключения:
-
ClassCastException- если ключ не может быть преобразован к типуRenderingHints.Key - См. также:
put
public Object put(Object key, Object value)
key со значением, указанным в этом объекте RenderingHints. Ни ключ, ни значение не могут быть null. Значение можно получить, вызвав метод get с ключом, равным исходному ключу.- Specified by:
-
putв интерфейсеMap<Object,Object> - Parameters:
-
key- ключ параметра отображения. -
value- значение параметра отображения. - Returns:
- предыдущее значение указанного ключа в этом объекте или
null, если его не было. - Throws:
-
NullPointerException- если ключ являетсяnull. -
ClassCastException- если ключ нельзя привести к типуRenderingHints.Key -
IllegalArgumentException- если методKey.isCompatibleValue()указанного ключа возвращает false для указанного значения - See Also:
add
public void add(RenderingHints hints)
RenderingHints в этот объект RenderingHints. Ключи, присутствующие в этом объекте RenderingHints, но отсутствующие в указанном объекте RenderingHints, не затрагиваются.- Parameters:
-
hints- набор пар ключ/значение, которые необходимо добавить в этот объектRenderingHints
clear
remove
public Object remove(Object key)
RenderingHints. Этот метод ничего не делает, если ключ отсутствует в этом объекте RenderingHints.- Specified by:
-
removeв интерфейсеMap<Object,Object> - Parameters:
-
key- ключ параметров отображения, который необходимо удалить - Returns:
- значение, которому ранее соответствовал ключ в этом объекте
RenderingHints, илиnull, если ключ не был сопоставлен. - Throws:
-
ClassCastException- если ключ нельзя привести к типуRenderingHints.Key
putAll
public void putAll(Map<?,?> m)
Map в этот объект RenderingHints. Эти отображения заменяют любые отображения, которые у этого объекта RenderingHints были для любых ключей, которые сейчас есть в указанном объекте Map.- Specified by:
-
putAllв интерфейсеMap<Object,Object> - Parameters:
-
m- указанныйMap - Throws:
-
ClassCastException- класс ключа или значения в указанномMapпрепятствует его хранению в этом объектеRenderingHints. -
IllegalArgumentException- какой-либо аспект ключа или значения в указанномMapпрепятствует его хранению в этом объектеRenderingHints.
keySet
public Set<Object> keySet()
Set ключей, содержащихся в этом объекте RenderingHints. Множество поддерживается объектом RenderingHints, поэтому изменения в RenderingHints отражаются в Set и наоборот. Если объект RenderingHints изменяется во время итерации по Set, результаты итерации не определены. Множество поддерживает удаление элементов, что удаляет соответствующее отображение из RenderingHints, посредством операций Iterator.remove, Set.remove, removeAll retainAll и clear. Оно не поддерживает операции add или addAll.values
public Collection<Object> values()
Collection значений, содержащихся в этом объекте RenderingHints. Коллекция значений поддерживается объектом RenderingHints, поэтому изменения в RenderingHints отражаются в Collection и наоборот. Если объект RenderingHints изменяется во время итерации по Collection, результаты итерации не определены. Коллекция поддерживает удаление элементов, что удаляет соответствующее отображение из RenderingHints посредством операций Iterator.remove, Collection.remove, removeAll, retainAll и clear. Она не поддерживает операции add или addAll.entrySet
public Set<Map.Entry<Object,Object>> entrySet()
Set отображений, содержащихся в этом объекте RenderingHints. Каждый элемент в возвращаемом наборе Set представляет собой запись Map.Entry. Набор поддерживается объектом 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/RenderingHints.html