Класс RenderingHints
- Все реализуемые интерфейсы:
-
Cloneable,Map<Object,Object>
public class RenderingHints extends Object implements Map<Object,Object>, Cloneable
RenderingHints определяет и управляет коллекциями ключей и связанных значений, которые позволяют приложению управлять выбором алгоритмов, используемых другими классами для выполнения операций рендеринга и обработки изображений. Класс Graphics2D и классы, реализующие BufferedImageOp и RasterOp, предоставляют методы для получения и, возможно, установки отдельных или групп ключей RenderingHints и их связанных значений. При выполнении операций рендеринга или обработки изображений эти реализации должны проверять значения любых ключей RenderingHints, запрошенных вызывающей стороной, и подстраивать используемые алгоритмы соответственно и по возможности наилучшим образом. Обратите внимание, что поскольку эти ключи и значения являются намеками, нет требования, чтобы данная реализация поддерживала все возможные варианты, указанные ниже, или что она может реагировать на запросы изменения выбора алгоритма. Значения различных ключей намеков также могут взаимодействовать таким образом, что, хотя все варианты данного ключа поддерживаются в одной ситуации, реализация может быть более ограничена, когда значения, связанные с другими ключами, изменены. Например, некоторые реализации могут предоставить несколько типов дithering, когда отключение сглаживания, но имеют небольшой контроль над дithering, когда включено сглаживание. Полный набор поддерживаемых ключей и намеков также может варьироваться в зависимости от назначения, поскольку среды выполнения могут использовать разные базовые модули для рендеринга на экран или на объекты 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 |
Значение подсказки дithering — использование значения по умолчанию для дithering, выбранного реализацией. |
static final Object |
VALUE_DITHER_DISABLE |
Значение подсказки дithering — не применять дithering при рендеринге геометрии. |
static final Object |
VALUE_DITHER_ENABLE |
Значение подсказки дithering — применять дithering при рендеринге геометрии, если необходимо. |
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 |
Значение подсказки антиалиасинга текста — запрос на отображение текста, оптимизированного для ЖК-дисплея с субпикселями в порядке слева направо B,G,R, таким образом, что горизонтальное разрешение субпикселей в три раза превышает горизонтальное разрешение полного пикселя (HBGR). |
static final Object |
VALUE_TEXT_ANTIALIAS_LCD_HBGR |
Значение подсказки антиалиасинга текста — запрос на отображение текста, оптимизированного для ЖК-дисплея с субпикселями в порядке слева направо R,G,B, таким образом, что горизонтальное разрешение субпикселей в три раза превышает горизонтальное разрешение полного пикселя (HRGB). |
static final Object |
VALUE_TEXT_ANTIALIAS_LCD_HRGB |
Значение подсказки антиалиасинга текста — запрос на отображение текста, оптимизированного для ЖК-дисплея с субпикселями сверху вниз B,G,R, таким образом, что вертикальное разрешение субпикселей в три раза превышает вертикальное разрешение полного пикселя (VBGR). |
static final Object |
VALUE_TEXT_ANTIALIAS_LCD_VBGR |
Значение подсказки антиалиасинга текста — запрос на отображение текста, оптимизированного для ЖК-дисплея с субпикселями сверху вниз R,G,B, таким образом, что вертикальное разрешение субпикселей в три раза превышает вертикальное разрешение полного пикселя (VRGB). |
static final Object |
VALUE_TEXT_ANTIALIAS_LCD_VRGB |
Значение подсказки антиалиасинга текста — рендеринг текста выполняется без антиалиасинга. |
static final Object |
VALUE_TEXT_ANTIALIAS_OFF |
Значение подсказки антиалиасинга текста — рендеринг текста выполняется с каким-либо видом антиалиасинга. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
RenderingHints |
Создаёт новый объект с указанной парой ключ/значение. |
RenderingHints |
Создаёт новый объект с ключами и значениями, инициализированными из указанного объекта Map, который может быть null. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
add |
Добавляет все ключи и соответствующие значения из указанного объекта RenderingHints в этот объект RenderingHints. |
void |
clear() |
Очищает этот объект RenderingHints от всех пар ключ/значение. |
Object |
clone() |
Создаёт копию этого объекта RenderingHints, которая имеет такое же содержимое, как и этот объект RenderingHints. |
boolean |
containsKey |
Возвращает true, если этот объект RenderingHints содержит отображение для указанного ключа. |
boolean |
containsValue |
Возвращает true, если отображение RenderingHints отображает один или несколько ключей для указанного значения. |
Set<Map.Entry<Object, |
entrySet() |
Возвращает представление Set отображений, содержащихся в этом объекте RenderingHints. |
boolean |
equals |
Сравнивает указанный объект Object с этим объектом RenderingHints на равенство. |
Object |
get |
Возвращает значение, которому сопоставлен указанный ключ. |
int |
hashCode() |
Возвращает код хэша для этого объекта RenderingHints. |
boolean |
isEmpty() |
Возвращает true, если этот объект RenderingHints не содержит сопоставлений ключ-значение. |
Set<Object> |
keySet() |
Возвращает представление Set ключей, содержащихся в этом объекте RenderingHints. |
Object |
put |
Сопоставляет указанный объект key с указанным объектом value в этом объекте RenderingHints. |
void |
putAll |
Копирует все сопоставления из указанного объекта Map в этот объект RenderingHints. |
Object |
remove |
Удаляет ключ и соответствующее ему значение из этого объекта RenderingHints. |
int |
size() |
Возвращает количество пар ключ-значение в этом объекте RenderingHints. |
String |
toString() |
Возвращает достаточно длинное строковое представление хэш-мапы, содержащей отображения ключей к значениям для этого объекта RenderingHints. |
Collection<Object> |
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_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, но слияние может отображать некоторые незначительные разрывы вдоль горизонтальных и вертикальных краев, выровненных с образцами, вызванными внезапным изменением наклона интерполяции с одной стороны образца на другую. При уменьшении масштаба больше пикселей изображения имеют свои образцы цветов, представленные в результирующем выходе, поскольку каждый выходной пиксел получает информацию о цвете от до 4 пикселей изображения.
- См. также:
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 управляет тем, должна ли или разрешено ли реализации отображения изменять геометрию отображаемых фигур для различных целей. Некоторые реализации могут использовать оптимизированную платформенную библиотеку отображения, которая может быть быстрее традиционных алгоритмов программного отображения на данной платформе, но которая также может не поддерживать координаты с плавающей запятой. Некоторые реализации также могут иметь сложные алгоритмы, которые изменяют координаты пути, чтобы толстые линии выглядели более равномерными по ширине и интервалу.
Если реализация выполняет какой-либо вид изменения или «нормализации» пути, она никогда не должна перемещать координаты более чем на полпикселя в любом направлении.
Допустимые значения для этой подсказки
- Since:
- 1.3
VALUE_STROKE_DEFAULT
public static final Object VALUE_STROKE_DEFAULT
- Since:
- 1.3
- See Also:
VALUE_STROKE_NORMALIZE
public static final Object VALUE_STROKE_NORMALIZE
- Since:
- 1.3
- See Also:
VALUE_STROKE_PURE
public static final Object VALUE_STROKE_PURE
- Since:
- 1.3
- See Also:
KEY_RESOLUTION_VARIANT
public static final RenderingHints.Key KEY_RESOLUTION_VARIANT
RESOLUTION_VARIANT управляет тем, какой вариант разрешения изображения следует выбрать для рисования изображения.
- Since:
- 9
VALUE_RESOLUTION_VARIANT_DEFAULT
public static final Object VALUE_RESOLUTION_VARIANT_DEFAULT
- Since:
- 9
- See Also:
VALUE_RESOLUTION_VARIANT_BASE
public static final Object VALUE_RESOLUTION_VARIANT_BASE
- Since:
- 9
- See Also:
VALUE_RESOLUTION_VARIANT_SIZE_FIT
public static final Object VALUE_RESOLUTION_VARIANT_SIZE_FIT
- Since:
- 9
- See Also:
VALUE_RESOLUTION_VARIANT_DPI_FIT
public static final Object VALUE_RESOLUTION_VARIANT_DPI_FIT
- Since:
- 9
- See Also:
Подробное описание конструкторов
RenderingHints
public RenderingHints(Map<RenderingHints.Key,?> init)
- Parameters:
-
init- карта пар ключ/значение для инициализации подсказок или null, если объект должен быть пустым
RenderingHints
public RenderingHints(RenderingHints.Key key, Object value)
- Parameters:
-
key- ключ конкретного свойства подсказки -
value- значение свойства подсказки, указанного с помощьюkey
Подробное описание методов
size
public int size()
RenderingHints.- Specified by:
-
sizeв интерфейсеMap<Object,Object> - Returns:
- количество сопоставлений ключ-значение в этом
RenderingHints.
isEmpty
public boolean isEmpty()
true, если этот RenderingHints не содержит сопоставлений ключ-значение.- Specified by:
-
isEmptyв интерфейсеMap<Object,Object> - Returns:
-
true, если этотRenderingHintsне содержит сопоставлений ключ-значение.
containsKey
public boolean containsKey(Object key)
true, если этот RenderingHints содержит сопоставление для указанного ключа.- Specified by:
-
containsKeyв интерфейсеMap<Object,Object> - Parameters:
-
key- ключ, присутствие которого в этомRenderingHintsнеобходимо проверить. - Returns:
-
true, если этотRenderingHintsсодержит сопоставление для указанного ключа. - Throws:
-
ClassCastException- если ключ нельзя привести к типуRenderingHints.Key
containsValue
public boolean containsValue(Object value)
true тогда и только тогда, когда этот RenderingHints содержит по крайней мере одно отображение к значению v, при котором (value==null ? v==null : value.equals(v)). Эта операция, вероятно, потребует времени, линейного по размеру
RenderingHints, для большинства реализаций RenderingHints.- Specified by:
-
containsValueв интерфейсеMap<Object,Object> - Parameters:
-
value- значение, присутствие которого в этомRenderingHintsнеобходимо проверить. - Returns:
-
true, если этотRenderingHintsотображает один или несколько ключей к указанному значению.
get
public Object get(Object key)
- Specified by:
-
getв интерфейсеMap<Object,Object> - Parameters:
-
key- ключ свойства подсказки отображения - Returns:
- значение, которому соответствует ключ в этом объекте, или
null, если ключ не сопоставлен ни с каким значением в этом объекте. - Throws:
-
ClassCastException- если ключ нельзя привести к типуRenderingHints.Key - See Also:
put
public Object put(Object key, Object value)
key с указанным value в этом объекте 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:
добавить
public void add(RenderingHints hints)
RenderingHints объекта в этот RenderingHints объект. Ключи, присутствующие в этом RenderingHints объекте, но отсутствующие в указанном RenderingHints объекте, не изменяются.- Параметры:
-
hints- набор пар ключ/значение, которые необходимо добавить в этотRenderingHintsобъект
очистить
public void clear()
RenderingHints объект от всех пар ключ/значение.- Установлено:
-
clearв интерфейсеMap<Object,Object>
удалить
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 объекту, результаты итерации не определены. Множество поддерживает удаление элементов, которое удаляет соответствующее отображение из RenderingHints объекта, посредством операций Iterator.remove, Set.remove, removeAll retainAll и clear. Оно не поддерживает операции add или addAll.- Установлено:
-
keySetв интерфейсеMap<Object,Object> - Возвращает:
- представление вида
Setключей, содержащихся в этомRenderingHintsобъекте.
значения
public Collection<Object> values()
Collection значений, содержащихся в этом RenderingHints объекте. Коллекция основана на RenderingHints объекте, поэтому изменения в RenderingHints объекте отражаются в Collection объекте, и наоборот. Если RenderingHints объект изменяется во время итерации по Collection объекту, результаты итерации не определены. Коллекция поддерживает удаление элементов, которое удаляет соответствующее отображение из RenderingHints объекта, посредством операций Iterator.remove, Collection.remove, removeAll, retainAll и clear. Она не поддерживает операции add или addAll.- Установлено:
-
valuesв интерфейсеMap<Object,Object> - Возвращает:
- представление вида
Collectionзначений, содержащихся в этомRenderingHintsобъекте.
entrySet
public Set<Map.Entry<Object,Object>> entrySet()
Set отображений, содержащихся в этом RenderingHints объекте. Каждый элемент в возвращаемом Set множестве является Map.Entry объектом. Множество основано на RenderingHints объекте, поэтому изменения в RenderingHints объекте отражаются в Set объекте. Если RenderingHints объект изменяется во время итерации по Set объекту, результаты итерации не определены. Множество отображений, возвращаемое из RenderingHints объекта, не изменяемо.
- Установлено:
-
entrySetв интерфейсеMap<Object,Object> - Возвращает:
- представление вида
Setотображений, содержащихся в этомRenderingHintsобъекте.
равенство
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.- Установлено:
-
equalsв интерфейсеMap<Object,Object> - Переопределяет:
-
equalsв классеObject - Параметры:
-
o-Objectобъект, сравниваемый на равенство с этимRenderingHintsобъектом. - Возвращает:
-
true, если указанныйObjectобъект равен этомуRenderingHintsобъекту. - См. также:
hashCode
public int hashCode()
RenderingHints объекта. Хэш-код RenderingHints определяется как сумма хэш-кодов каждого Entry элемента в представлении вида entrySet этого RenderingHints объекта. Это гарантирует, что t1.equals(t2) подразумевает, что t1.hashCode()==t2.hashCode() для любых двух Map объектов t1 и t2, как требуется общим контрактом для Object.hashCode.- Установлено:
-
hashCodeв интерфейсеMap<Object,Object> - Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение хэш-кода для этого
RenderingHintsобъекта. - См. также:
клонировать
public Object clone()
RenderingHints объекта с теми же данными, что и у этого RenderingHints объекта.- Переопределяет:
-
cloneв классеObject - Возвращает:
- клонированный экземпляр.
- См. также:
toString
public String toString()
RenderingHints объекта.- Переопределяет:
-
toStringв классеObject - Возвращает:
- строковое представление этого объекта.
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.desktop/java/awt/RenderingHints.html