Класс RenderingHints
- java.lang.Object
-
- java.awt.RenderingHints
- Все реализуемые интерфейсы:
- Cloneable, Map<Object,Object>
public class RenderingHints extends Object implements Map<Object,Object>, Cloneable
Класс RenderingHints определяет и управляет коллекциями ключей и соответствующих значений, которые позволяют приложению задавать параметры алгоритмов, используемых другими классами для рендеринга и обработки изображений. Класс Graphics2D, а также классы, реализующие BufferedImageOp и RasterOp, предоставляют методы для получения и, возможно, установки отдельных или групп RenderingHints ключей и их соответствующих значений. При выполнении операций рендеринга или обработки изображений эти реализации должны проверять значения любых RenderingHints, запрошенных вызывающей стороной, и соответствующим образом настраивать используемые алгоритмы в соответствии с лучшими возможностями.
Обратите внимание, что поскольку эти ключи и значения являются подсказками, нет требования, чтобы конкретная реализация поддерживала все возможные варианты, указанные ниже, или что она может реагировать на запросы по изменению своего выбора алгоритма. Значения различных ключей подсказок также могут взаимодействовать таким образом, что, хотя все варианты данного ключа поддерживаются в одной ситуации, реализация может быть более ограничена, когда значения, связанные с другими ключами, изменяются. Например, некоторые реализации могут обеспечить несколько типов дithering, когда подсказка antialiasing выключена, но иметь мало контроля над dithering, когда antialiasing включен. Полный набор поддерживаемых ключей и подсказок также может отличаться в зависимости от места назначения, поскольку среды выполнения могут использовать разные основополагающие модули для рендеринга на экране или на объектах BufferedImage, или при печати.
Реализации могут игнорировать подсказки, но должны стремиться использовать алгоритм реализации, который максимально приближен к запросу. Если реализация поддерживает данный алгоритм при использовании любого значения для связанного ключа подсказки, то по меньшей мере она должна поддерживать его, когда значение для этого ключа является точным значением, которое определяет алгоритм.
Ключи, используемые для управления подсказками, являются специальными значениями, которые наследуют от связанного класса RenderingHints.Key. Многие распространённые подсказки выражены ниже в виде статических констант в этом классе, но этот список не является исчерпывающим. Другие подсказки могут быть созданы другими пакетами путём определения новых объектов, которые наследуют от класса Key и определения соответствующих значений.
Вложенные классы
| Модификатор и тип | Класс и описание |
|---|---|
static class |
RenderingHints.Key Определяет базовый тип всех ключей, используемых вместе с классом |
Вложенные классы/интерфейсы, унаследованные от интерфейса java.util.Map
Map.Entry<K,V> Поля
| Модификатор и тип | Поле и описание |
|---|---|
static RenderingHints.Key |
KEY_ALPHA_INTERPOLATION Ключ подсказки интерполяции альфы. |
static RenderingHints.Key |
KEY_ANTIALIASING Ключ подсказки антиалиасинга. |
static RenderingHints.Key |
KEY_COLOR_RENDERING Ключ подсказки рендеринга цвета. |
static RenderingHints.Key |
KEY_DITHERING Ключ подсказки дithering. |
static RenderingHints.Key |
KEY_FRACTIONALMETRICS Ключ подсказки дробных метрик шрифта. |
static RenderingHints.Key |
KEY_INTERPOLATION Ключ подсказки интерполяции. |
static RenderingHints.Key |
KEY_RENDERING Ключ подсказки рендеринга. |
static RenderingHints.Key |
KEY_STROKE_CONTROL Ключ подсказки управления нормализацией обводки. |
static RenderingHints.Key |
KEY_TEXT_ANTIALIASING Ключ подсказки антиалиасинга текста. |
static RenderingHints.Key |
KEY_TEXT_LCD_CONTRAST Ключ подсказки рендеринга контраста текста на ЖК-дисплее. |
static Object |
VALUE_ALPHA_INTERPOLATION_DEFAULT Значение подсказки интерполяции альфы — алгоритмы смешивания альфы выбираются реализацией для оптимального соотношения производительности и … |
static Object |
VALUE_ALPHA_INTERPOLATION_QUALITY Значение подсказки интерполяции альфы — алгоритмы смешивания альфы выбираются с предпочтением к точности и качеству изображения. |
static Object |
VALUE_ALPHA_INTERPOLATION_SPEED Значение подсказки интерполяции альфы — алгоритмы смешивания альфы выбираются с предпочтением к скорости вычислений. |
static Object |
VALUE_ANTIALIAS_DEFAULT Значение подсказки антиалиасинга — рендеринг выполняется в режиме антиалиасинга по умолчанию, выбранном реализацией. |
static Object |
VALUE_ANTIALIAS_OFF Значение подсказки антиалиасинга — рендеринг выполняется без антиалиасинга. |
static Object |
VALUE_ANTIALIAS_ON Значение подсказки антиалиасинга — рендеринг выполняется с антиалиасингом. |
static Object |
VALUE_COLOR_RENDER_DEFAULT Значение подсказки рендеринга цвета — вычисления преобразования цвета выполняются, как выбрано реализацией, для наилучшего соотношения производительности и точности. |
static Object |
VALUE_COLOR_RENDER_QUALITY Значение подсказки рендеринга цвета — вычисления преобразования цвета выполняются с наибольшей точностью и качеством изображения. |
static Object |
VALUE_COLOR_RENDER_SPEED Значение подсказки рендеринга цвета — выполняется самое быстрое преобразование цвета в формат устройства вывода. |
static Object |
VALUE_DITHER_DEFAULT Значение подсказки дithering — используется значение по умолчанию, выбранное реализацией. |
static Object |
VALUE_DITHER_DISABLE Значение подсказки дithering — не использовать дithering при рендеринге геометрии. |
static Object |
VALUE_DITHER_ENABLE Значение подсказки дithering — использовать дithering при рендеринге геометрии, если необходимо. |
static Object |
VALUE_FRACTIONALMETRICS_DEFAULT Значение подсказки дробных метрик шрифта — позиционирование глифов символов выполняется с точностью, выбранной реализацией. |
static Object |
VALUE_FRACTIONALMETRICS_OFF Значение подсказки дробных метрик шрифта — позиционирование глифов символов с округлением ширины до границ пикселей. |
static Object |
VALUE_FRACTIONALMETRICS_ON Значение подсказки дробных метрик шрифта — позиционирование глифов символов с субпиксельной точностью. |
static Object |
VALUE_INTERPOLATION_BICUBIC Значение подсказки интерполяции — цветные образцы 9 ближайших целочисленных координат образца в изображении интерполируются с помощью кубической функции в |
static Object |
VALUE_INTERPOLATION_BILINEAR Значение подсказки интерполяции — цветные образцы 4 ближайших целочисленных координатных образцов в изображении интерполируются линейно, чтобы получить цветной образец. |
static Object |
VALUE_INTERPOLATION_NEAREST_NEIGHBOR Значение подсказки интерполяции — используется цветной образец ближайшего целочисленного координатного образца в изображении. |
static Object |
VALUE_RENDER_DEFAULT Значение подсказки рендеринга — алгоритмы рендеринга выбираются реализацией для оптимального соотношения производительности и … |
static Object |
VALUE_RENDER_QUALITY Значение подсказки рендеринга — алгоритмы рендеринга выбираются с предпочтением к качеству вывода. |
static Object |
VALUE_RENDER_SPEED Значение подсказки рендеринга — алгоритмы рендеринга выбираются с предпочтением к скорости вывода. |
static Object |
VALUE_STROKE_DEFAULT Значение подсказки управления нормализацией обводки — геометрия может быть изменена или оставлена неизменной в зависимости от компромиссов в данной реализации. |
static Object |
VALUE_STROKE_NORMALIZE Значение подсказки управления нормализацией обводки — геометрия должна быть нормализована для улучшения единообразия или интервалов линий и общей эстетики. |
static Object |
VALUE_STROKE_PURE Значение подсказки управления нормализацией обводки — геометрия должна остаться неизменной и рендериться с субпиксельной точностью. |
static Object |
VALUE_TEXT_ANTIALIAS_DEFAULT Значение подсказки антиалиасинга текста — рендеринг текста выполняется в соответствии с подсказкой |
static Object |
VALUE_TEXT_ANTIALIAS_GASP Значение подсказки антиалиасинга текста — запрос на использование информации из ресурса шрифта, в котором для каждого размера точки указано, применять ли |
static Object |
VALUE_TEXT_ANTIALIAS_LCD_HBGR Значение подсказки антиалиасинга текста — запрос на отображение текста, оптимизированного для ЖК-дисплея с субпикселями в порядке слева направо B, G, R, так что горизонтальное разрешение субпикселей в три раза больше горизонтального разрешения полного пикселя (HBGR). |
static Object |
VALUE_TEXT_ANTIALIAS_LCD_HRGB Значение подсказки антиалиасинга текста — запрос на отображение текста, оптимизированного для ЖК-дисплея с субпикселями в порядке слева направо R, G, B, так что горизонтальное разрешение субпикселей в три раза больше горизонтального разрешения полного пикселя (HRGB). |
static Object |
VALUE_TEXT_ANTIALIAS_LCD_VBGR Значение подсказки антиалиасинга текста — запрос на отображение текста, оптимизированного для ЖК-дисплея с субпикселями в порядке сверху вниз B, G, R, так что вертикальное разрешение субпикселей в три раза больше вертикального разрешения полного пикселя (VBGR). |
static Object |
VALUE_TEXT_ANTIALIAS_LCD_VRGB Значение подсказки антиалиасинга текста — запрос на отображение текста, оптимизированного для ЖК-дисплея с субпикселями в порядке сверху вниз R, G, B, так что вертикальное разрешение субпикселей в три раза больше вертикального разрешения полного пикселя (VRGB). |
static Object |
VALUE_TEXT_ANTIALIAS_OFF Значение подсказки антиалиасинга текста — рендеринг текста выполняется без антиалиасинга. |
static Object |
VALUE_TEXT_ANTIALIAS_ON Значение подсказки антиалиасинга текста — рендеринг текста выполняется с некоторым видом антиалиасинга. |
Конструкторы
| Конструктор и описание |
|---|
RenderingHints(Map<RenderingHints.Key,?> init) Создаёт новый объект с ключами и значениями, инициализированными из указанного объекта Map, который может быть null. |
RenderingHints(RenderingHints.Key key,
Object value) Создаёт новый объект с указанной парой ключ/значение. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
void |
add(RenderingHints hints) Добавляет все ключи и соответствующие значения из указанного |
void |
clear() Очищает этот |
Object |
clone() Создаёт копию этого |
boolean |
containsKey(Object key) Возвращает |
boolean |
containsValue(Object value) Возвращает true, если это RenderingHints отображает один или несколько ключей со значением. |
Set<Map.Entry<Object,Object>> |
entrySet() Возвращает |
boolean |
equals(Object o) Сравнивает указанный |
Object |
get(Object key) Возвращает значение, которому соответствует указанный ключ. |
int |
hashCode() Возвращает хэш-код для этого |
boolean |
isEmpty() Возвращает |
Set<Object> |
keySet() Возвращает |
Object |
put(Object key,
Object value) Сопоставляет указанный |
void |
putAll(Map<?,?> m) Копирует все отображения из указанного |
Object |
remove(Object key) Удаляет ключ и соответствующее ему значение из этого |
int |
size() Возвращает количество отображений ключ-значение в этом |
String |
toString() Возвращает довольно длинное строковое представление хэш-таблицы, содержащей отображения ключей в значения для этого |
Collection<Object> |
values() Возвращает |
Методы, унаследованные от класса 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
Значение подсказки по сглаживанию — рендеринг выполняется со сглаживанием.
- См. также:
KEY_ANTIALIASING
VALUE_ANTIALIAS_OFF
public static final Object VALUE_ANTIALIAS_OFF
Значение подсказки по сглаживанию — рендеринг выполняется без сглаживания.
- См. также:
KEY_ANTIALIASING
VALUE_ANTIALIAS_DEFAULT
public static final Object VALUE_ANTIALIAS_DEFAULT
Значение подсказки по сглаживанию — рендеринг выполняется с помощью режима сглаживания по умолчанию, выбранного реализацией.
- См. также:
KEY_ANTIALIASING
KEY_RENDERING
public static final RenderingHints.Key KEY_RENDERING
Ключ подсказки по рендерингу. Подсказка RENDERING — это общая подсказка, которая дает высокую оценку рекомендаций по тому, стоит ли больше смещать выбор алгоритмов в сторону скорости или качества при оценке компромиссов. Эту подсказку можно использовать для любой операции рендеринга или обработки изображений, но решения обычно учитывают другие, более конкретные подсказки, в приоритетном порядке перед этой.
Допустимые значения для этой подсказки:
VALUE_RENDER_SPEED
public static final Object VALUE_RENDER_SPEED
Значение подсказки по рендерингу — алгоритмы рендеринга выбираются со стремлением к скорости вывода.
- См. также:
KEY_RENDERING
VALUE_RENDER_QUALITY
public static final Object VALUE_RENDER_QUALITY
Значение подсказки по рендерингу — алгоритмы рендеринга выбираются со стремлением к качеству вывода.
- См. также:
KEY_RENDERING
VALUE_RENDER_DEFAULT
public static final Object VALUE_RENDER_DEFAULT
Значение подсказки по рендерингу — алгоритмы рендеринга выбираются реализацией для достижения хорошего баланса между производительностью и качеством.
- См. также:
KEY_RENDERING
KEY_DITHERING
public static final RenderingHints.Key KEY_DITHERING
Ключ подсказки по дизэрингу. Подсказка DITHERING управляет тем, насколько точно приближать цвет при сохранении в место назначения с ограниченной цветовой разрешающей способностью.
Некоторые места назначения рендеринга могут поддерживать ограниченное количество цветовых вариантов, которые могут не точно представлять весь спектр цветов, который может получиться во время операций рендеринга. Для такого места назначения подсказка DITHERING управляет тем, будет ли рендеринг выполняться сплошной заливкой одного значения пикселя, которое является ближайшим поддерживаемым цветом к запрошенному, или фигуры будут заполняться узором цветов, которые комбинируются для лучшего приближения к этому цвету.
Допустимые значения для этой подсказки:
VALUE_DITHER_DISABLE
public static final Object VALUE_DITHER_DISABLE
Значение подсказки по дизэрингу — не применять дизэринг при рендеринге геометрии.
- См. также:
KEY_DITHERING
VALUE_DITHER_ENABLE
public static final Object VALUE_DITHER_ENABLE
Значение подсказки по дизэрингу — использовать дизэринг при рендеринге геометрии, если необходимо.
- См. также:
KEY_DITHERING
VALUE_DITHER_DEFAULT
public static final Object VALUE_DITHER_DEFAULT
Значение подсказки по дизэрингу — использовать значение по умолчанию, выбранное реализацией.
- См. также:
KEY_DITHERING
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
Значение подсказки по сглаживанию текста — рендеринг текста выполняется с какой-либо формой сглаживания.
- См. также:
KEY_TEXT_ANTIALIASING
VALUE_TEXT_ANTIALIAS_OFF
public static final Object VALUE_TEXT_ANTIALIAS_OFF
Значение подсказки по сглаживанию текста — рендеринг текста выполняется без какой-либо формы сглаживания.
- См. также:
KEY_TEXT_ANTIALIASING
VALUE_TEXT_ANTIALIAS_DEFAULT
public static final Object VALUE_TEXT_ANTIALIAS_DEFAULT
Значение подсказки по сглаживанию текста — рендеринг текста выполняется в соответствии с подсказкой KEY_ANTIALIASING или значением по умолчанию, выбранным реализацией.
- См. также:
KEY_TEXT_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
- См. также:
KEY_TEXT_ANTIALIASING
VALUE_TEXT_ANTIALIAS_LCD_HRGB
public static final Object VALUE_TEXT_ANTIALIAS_LCD_HRGB
Значение подсказки по сглаживанию текста — запрос отображения текста, оптимизированного для ЖК-дисплея с субпикселями в порядке слева направо R, G, B таким образом, что горизонтальное разрешение субпикселей в три раза больше, чем полное горизонтальное разрешение пикселей (HRGB). Это наиболее распространённая конфигурация. Выбор этой подсказки для дисплеев с другими конфигурациями субпикселей ЖК-дисплея, скорее всего, приведёт к размытому тексту.
Примечания:
Реализация при выборе, применять ли любое из значений подсказок LCD для текста, может учитывать такие факторы, как необходимость глубины цвета места назначения не менее 15 бит на пиксель (т. е. 5 бит на компонент цвета), характеристики шрифта, такие как то, может ли встроенный растровый рисунок обеспечить лучшие результаты, или при отображении на удалённом сетевом устройстве дисплея, разрешая это только в случае доступности соответствующих протоколов, или игнорирование подсказки при выполнении рендеринга с очень высоким разрешением или если целевое устройство не подходит: например, при печати.
Эти подсказки могут быть одинаково применены при рендеринге в программные изображения, но эти изображения могут не подходить для общего экспорта, так как текст был отрендерен соответствующим образом для определённой организации субпикселей. Также нежелательно использование сжатых изображений, а также форматов изображений, таких как GIF, имеющих ограниченное количество цветов. Поэтому, если изображение предназначено только для рендеринга на устройстве отображения с той же конфигурацией, может быть предпочтительнее использовать другую подсказку сглаживания текста, такую как VALUE_TEXT_ANTIALIAS_ON.
Выбор значения, которое не соответствует используемому ЖК-дисплею, скорее всего, приведёт к ухудшению качества текста. На устройствах отображения (например, ЭЛТ) без тех же характеристик, что и ЖК-дисплеи, общий эффект может быть похож на стандартное сглаживание текста, но качество может ухудшиться из-за искажения цвета. ЖК-дисплеи с аналоговым подключением также могут показать небольшое преимущество перед стандартным сглаживанием текста и быть похожими на ЭЛТ.
Другими словами, для достижения наилучших результатов используйте ЖК-дисплей с цифровым разъёмом для отображения и укажите соответствующую конфигурацию субпикселей.
- С момента:
- 1.6
- См. также:
KEY_TEXT_ANTIALIASING
VALUE_TEXT_ANTIALIAS_LCD_HBGR
public static final Object VALUE_TEXT_ANTIALIAS_LCD_HBGR
Подсказка значения антиалиасинга текста — запрос отображения текста, оптимизированного для ЖК-дисплея с субпикселями, расположенными слева направо по B,G,R, так что горизонтальное разрешение субпикселей в три раза больше горизонтального разрешения полного пикселя (HBGR). Эта конфигурация встречается гораздо реже, чем HRGB. Выбор этой подсказки для дисплеев с другой конфигурацией субпикселей ЖК-дисплея, скорее всего, приведет к нечеткому тексту. См. VALUE_TEXT_ANTIALIAS_LCD_HRGB, для получения дополнительной информации о применении этой подсказки.
- С момента:
- 1.6
- См. также:
KEY_TEXT_ANTIALIASING
VALUE_TEXT_ANTIALIAS_LCD_VRGB
public static final Object VALUE_TEXT_ANTIALIAS_LCD_VRGB
Значение подсказки антиалиасинга текста — запрос отображения текста, оптимизированного для ЖК-дисплея с организацией субпикселей сверху вниз по R,G,B, так что вертикальное разрешение субпикселей в три раза больше вертикального разрешения полного пикселя (VRGB). Вертикальная ориентация очень редкая и, вероятно, полезна в основном для физически повернутого дисплея. Выбор этой подсказки для дисплеев с другой конфигурацией субпикселей ЖК-дисплея, скорее всего, приведет к нечеткому тексту. См. VALUE_TEXT_ANTIALIAS_LCD_HRGB, для получения дополнительной информации о применении этой подсказки.
- С момента:
- 1.6
- См. также:
KEY_TEXT_ANTIALIASING
VALUE_TEXT_ANTIALIAS_LCD_VBGR
public static final Object VALUE_TEXT_ANTIALIAS_LCD_VBGR
Значение подсказки антиалиасинга текста — запрос отображения текста, оптимизированного для ЖК-дисплея с организацией субпикселей сверху вниз по B,G,R, так что вертикальное разрешение субпикселей в три раза больше вертикального разрешения полного пикселя (VBGR). Вертикальная ориентация очень редкая и, вероятно, полезна в основном для физически повернутого дисплея. Выбор этой подсказки для дисплеев с другой конфигурацией субпикселей ЖК-дисплея, скорее всего, приведет к нечеткому тексту. См. VALUE_TEXT_ANTIALIAS_LCD_HRGB, для получения дополнительной информации о применении этой подсказки.
- С момента:
- 1.6
- См. также:
KEY_TEXT_ANTIALIASING
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_TEXT_ANTIALIASING
KEY_FRACTIONALMETRICS
public static final RenderingHints.Key KEY_FRACTIONALMETRICS
Ключ подсказки дробных метрик шрифта. Подсказка FRACTIONALMETRICS управляет тем, учитывает ли позиционирование отдельных глифов символов субпиксельную точность масштабированных продвижений символов шрифта или такие векторы продвижения округляются до целого числа пикселей устройства. Эта подсказка только рекомендует, насколько высокая точность должна использоваться для позиционирования глифов и не указывает или не рекомендует, должны ли быть изменены фактическая растризация или пиксельные границы глифа для соответствия.
Отображение текста на устройстве с низким разрешением, таком как экран, неизбежно будет включать ряд операций округления, поскольку высокое качество и очень точное определение формы и метрик глифов символов должны соответствовать дискретным пикселям устройства.
В идеале позиционирование глифов во время верстки текста должно рассчитываться путем масштабирования метрик дизайна в шрифте в соответствии с размером шрифта, но масштабированная ширина продвижения не обязательно будет целым числом пикселей.
Если глифы позиционируются с субпиксельной точностью в соответствии с этими масштабированными метриками дизайна, то растрирование, в идеале, должно быть скорректировано для каждого возможного субпиксельного начала.
К сожалению, масштабирование каждого глифа, настроенного на его точное субпиксельное начало во время верстки текста, было бы чрезмерно затратно, поэтому обычно используется упрощенная система, основанная на целых позициях устройства, для выкладки текста.
Растризация глифа и масштабированная ширина продвижения корректируются вместе, чтобы получить текст, который выглядит хорошо на разрешении устройства и имеет постоянные целые пиксельные расстояния между глифами, которые помогают глифам выглядеть равномерно и последовательно расположенными и читаемыми.
Этот процесс округления ширин продвижения растрированных глифов до целых расстояний означает, что плотность символов и общая длина строки текста будут отличаться от теоретических данных конструкции из-за накопления ряда небольших различий в скорректированных ширинах каждого глифа.
Указанные различия будут разными для каждого глифа, некоторые будут шире, а некоторые — уже, чем их теоретические данные дизайна.
Таким образом, общее различие в плотности символов и длине будет меняться в зависимости от ряда факторов, включая шрифт, целевое разрешение конкретного устройства и выбранные глифы для представления рендерируемой строки.
В результате рендеринг одной и той же строки на разных разрешениях устройств может давать сильно различающиеся метрики для целых строк.
Когда FRACTIONALMETRICS включены, истинные метрики дизайна шрифта масштабируются по размеру шрифта и используются для выкладки с субпиксельной точностью.
Средняя плотность глифов и общая длина длинной строки символов, следовательно, будет более точно соответствовать теоретическому дизайну шрифта, но удобочитаемость может пострадать, поскольку отдельные пары символов могут не всегда казаться расположенными на одинаковом расстоянии в зависимости от того, как накопление субпикселей начала глифа сочетается с сеткой пикселей устройства.
Включение этой подсказки может быть желательно при верстке текста, которая должна быть согласованной на широком диапазоне разрешений вывода. В частности, эта подсказка может быть желательна в ситуациях, когда макет текста предварительно просматривается на устройстве с низким разрешением, таком как экран, для вывода, который в конечном итоге будет отображаться на высококачественном принтере или устройстве для набора текста.
При отключении масштабированные метрики дизайна округляются или корректируются до целых расстояний для выкладки.
Расстояния между любыми двумя конкретными глифами будут более однородными на устройстве, но плотность и общая длина длинных строк могут больше не соответствовать теоретическим намерениям дизайнера шрифта.
Отключение этой подсказки обычно приводит к более удобочитаемым результатам на устройствах с низким разрешением, таких как компьютерные мониторы.
Допустимые значения для этого ключа:
VALUE_FRACTIONALMETRICS_OFF
public static final Object VALUE_FRACTIONALMETRICS_OFF
Значение подсказки дробных метрик шрифта — глифы символов позиционируются с ширинами продвижения, округленными до границ пикселей.
- См. также:
KEY_FRACTIONALMETRICS
VALUE_FRACTIONALMETRICS_ON
public static final Object VALUE_FRACTIONALMETRICS_ON
Значение подсказки дробных метрик шрифта — глифы символов позиционируются с субпиксельной точностью.
- См. также:
KEY_FRACTIONALMETRICS
VALUE_FRACTIONALMETRICS_DEFAULT
public static final Object VALUE_FRACTIONALMETRICS_DEFAULT
Значение подсказки дробных метрик шрифта — глифы символов позиционируются с точностью, выбранной реализацией.
- См. также:
KEY_FRACTIONALMETRICS
KEY_INTERPOLATION
public static final RenderingHints.Key KEY_INTERPOLATION
Ключ подсказки интерполяции. Подсказка INTERPOLATION управляет тем, как пиксели изображения фильтруются или повторно сэмплируются во время операции рендеринга изображения.
Неявным образом изображения определяются для предоставления образцов цвета в целых координатах. Когда изображения рендерятся вертикально без масштабирования на целевую область, выбор того, какие пиксели изображения отображаются на каких пиксели устройства, очевиден, и образцы в целых координатах изображения передаются на пиксели в соответствующих целых местах на сетке пикселей устройства один к одному.
Когда изображения рендерятся в масштабированной, повернутой или другой трансформированной системе координат, отображение координат пикселей устройства обратно в изображение может поставить вопрос о том, какой образец цвета использовать для непрерывных координат, которые находятся между целыми позициями предоставленных образцов изображения.
Алгоритмы интерполяции определяют функции, которые предоставляют образец цвета для любой непрерывной координаты в изображении на основе образцов цвета в окружающих целых координатах.
Допустимые значения для этой подсказки:
VALUE_INTERPOLATION_NEAREST_NEIGHBOR
public static final Object VALUE_INTERPOLATION_NEAREST_NEIGHBOR
Значение подсказки интерполяции — используется образец цвета ближайшего соседнего образца целой координаты в изображении. Концептуально изображение рассматривается как сетка квадратных областей цвета единичного размера, расположенных вокруг центра каждого пикселя изображения.
При увеличении масштаба изображения оно будет соответственным образом выглядеть блочным. При уменьшении масштаба изображения цвета исходных пикселей будут либо использоваться без изменений, либо полностью пропущены в выходном представлении.
- См. также:
KEY_INTERPOLATION
VALUE_INTERPOLATION_BILINEAR
public static final Object VALUE_INTERPOLATION_BILINEAR
Значение подсказки интерполяции — цветные образцы 4 ближайших соседних целочисленных координатных образцов в изображении интерполируются линейно, чтобы получить цветной образец. Концептуально изображение рассматривается как набор бесконечно малых точечных цветных образцов, имеющих значение только в центрах целочисленных координатных пикселей, а пространство между этими центрами пикселей заполняется линейными градиентами цветов, которые соединяют смежные дискретные образцы прямой линией.
При увеличении масштаба изображения нет блочных границ между цветами в изображении, как это происходит с NEAREST_NEIGHBOR, но сглаживание может показать некоторые тонкие разрывы по горизонтальным и вертикальным границам, которые совпадают с образцами, вызванными внезапным изменением наклона интерполяции с одной стороны образца на другую. При уменьшении масштаба изображения больше пикселей изображения имеют свои цветные образцы, представленные в выходном изображении, так как каждый выходной пиксель получает информацию о цвете от максимум 4 пикселей изображения.
- См. также:
KEY_INTERPOLATION
VALUE_INTERPOLATION_BICUBIC
public static final Object VALUE_INTERPOLATION_BICUBIC
Значение подсказки интерполяции — цветные образцы 9 близлежащих целочисленных координатных образцов в изображении интерполируются с помощью кубической функции по X и Y для получения цветного образца. Концептуально представление изображения очень похоже на представление, используемое в алгоритме BILINEAR, за исключением того, что градиенты цветов, соединяющие образцы, имеют криволинейную форму и лучшую непрерывность наклона при переходе через границы образцов.
При увеличении масштаба изображения нет блочных границ, и интерполяция должна выглядеть более плавно и с лучшим отображением любых границ в исходном изображении, чем с BILINEAR. При уменьшении масштаба изображения еще больше исходных цветных образцов из исходного изображения будут переданы и представлены.
- См. также:
KEY_INTERPOLATION
KEY_ALPHA_INTERПОЛЯЦИЯ
public static final RenderingHints.Key KEY_ALPHA_INTERPOLATION
Ключ подсказки альфа-интерполяции. Подсказка ALPHA_INTERPOLATION — это общая подсказка, которая дает рекомендации по тому, следует ли отдавать предпочтение алгоритмам альфа-смешивания в большей степени по скорости или качеству при оценке компромиссов.
Эта подсказка может управлять выбором вычислений альфа-смешивания, которые жертвуют точностью для использования быстрых таблиц поиска или инструкций SIMD с меньшей точностью. Эта подсказка также может управлять тем, преобразуются ли значения цвета и альфа в линейное цветовое пространство во время вычислений для более линейного визуального эффекта за счет дополнительных вычислений на пиксель.
Допустимые значения для этой подсказки:
VALUE_ALPHA_INTERПОЛЯЦИЯ_СКОРОСТЬ
public static final Object VALUE_ALPHA_INTERPOLATION_SPEED
Значение подсказки альфа-интерполяции — алгоритмы альфа-смешивания выбираются с предпочтением к скорости вычислений.
- См. также:
KEY_ALPHA_INTERPOLATION
VALUE_ALPHA_INTERПОЛЯЦИЯ_КАЧЕСТВО
public static final Object VALUE_ALPHA_INTERPOLATION_QUALITY
Значение подсказки альфа-интерполяции — алгоритмы альфа-смешивания выбираются с предпочтением к точности и визуальному качеству.
- См. также:
KEY_ALPHA_INTERPOLATION
VALUE_ALPHA_INTERПОЛЯЦИЯ_ПОУМОЛЧАНИЮ
public static final Object VALUE_ALPHA_INTERPOLATION_DEFAULT
Значение подсказки альфа-интерполяции — алгоритмы альфа-смешивания выбираются реализацией для достижения хорошего баланса между производительностью и качеством.
- См. также:
KEY_ALPHA_INTERPOLATION
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
Значение подсказки цветового отображения — выполнить самое быстрое преобразование цвета в формат выходного устройства.
- См. также:
KEY_COLOR_RENDERING
VALUE_ЦВЕТОВОЕ_ОТОБРАЖЕНИЕ_КАЧЕСТВО
public static final Object VALUE_COLOR_RENDER_QUALITY
Значение подсказки цветового отображения — выполнить вычисления преобразования цвета с максимальной точностью и визуальным качеством.
- См. также:
KEY_COLOR_RENDERING
VALUE_ЦВЕТОВОЕ_ОТОБРАЖЕНИЕ_ПО_УМОЛЧАНИЮ
public static final Object VALUE_COLOR_RENDER_DEFAULT
Значение подсказки цветового отображения — выполнить вычисления преобразования цвета, как выбрано реализацией, для достижения лучшего компромисса между производительностью и точностью.
- См. также:
KEY_COLOR_RENDERING
KEY_УПРАВЛЕНИЕ_ШТРИХОМ
public static final RenderingHints.Key KEY_STROKE_CONTROL
Ключ подсказки управления нормализацией штриха. Подсказка STROKE_CONTROL определяет, должна ли реализация рендеринга изменять геометрию рендеренных фигур для различных целей или разрешено ли это.
Некоторые реализации могут использовать оптимизированную платформенную библиотеку рендеринга, которая может быть быстрее традиционных алгоритмов рендеринга в программном обеспечении на данной платформе, но также может не поддерживать координаты с плавающей точкой. Некоторые реализации также могут иметь сложные алгоритмы, которые изменяют координаты пути, чтобы широкие линии выглядели более равномерными по ширине и интервалу.
Если реализация выполняет какой-либо тип изменения или «нормализации» пути, она никогда не должна перемещать координаты более чем на половину пикселя в любом направлении.
Допустимые значения для этой подсказки:
- С:
- 1.3
VALUE_ШТРИХ_ПО_УМОЛЧАНИЮ
public static final Object VALUE_STROKE_DEFAULT
Значение подсказки управления нормализацией штриха — геометрия может быть изменена или оставлена неизменной в зависимости от компромиссов в данной реализации. Как правило, это значение позволяет реализации использовать быструю платформенную библиотеку рендеринга на основе целых координат, но не запрашивает конкретно нормализацию для равномерности или эстетики.
- С:
- 1.3
- См. также:
KEY_STROKE_CONTROL
VALUE_НОРМАЛИЗАЦИЯ_ШТРИХА
public static final Object VALUE_STROKE_NORMALIZE
Значение подсказки управления нормализацией штриха — геометрия должна быть нормализована для улучшения равномерности или интервалов линий и общей эстетики. Обратите внимание, что различные алгоритмы нормализации могут быть более успешными, чем другие, для заданных входных путей.
- С:
- 1.3
- См. также:
KEY_STROKE_CONTROL
VALUE_ЧИСТЫЙ_ШТРИХ
public static final Object VALUE_STROKE_PURE
Значение подсказки управления нормализацией штриха — геометрия должна оставаться неизменной и рендериться с точностью до подпикселей.
- С:
- 1.3
- См. также:
KEY_STROKE_CONTROL
Конструкторы
RenderingHints
public RenderingHints(Map<RenderingHints.Key,?> init)
Создаёт новый объект с ключами и значениями, инициализированными из указанного объекта Map, который может быть null.
- Параметры:
-
init- карта пар ключ/значение для инициализации подсказок или null, если объект должен быть пустым
RenderingHints
public RenderingHints(RenderingHints.Key key,
Object value) Создаёт новый объект с указанной парой ключ/значение.
- Параметры:
-
key- ключ конкретного свойства подсказки -
value- значение свойства подсказки, указанногоkey
Методы
size
public int size()
Возвращает количество сопоставлений ключ-значение в этой RenderingHints.
- Определено в:
-
sizeв интерфейсеMap<Object,Object> - Возвращает:
- количество сопоставлений ключ-значение в этой
RenderingHints.
isEmpty
public boolean isEmpty()
Возвращает true, если эта RenderingHints не содержит сопоставлений ключ-значение.
- Определено в:
-
isEmptyв интерфейсеMap<Object,Object> - Возвращает:
-
trueесли этотRenderingHintsне содержит сопоставлений ключ-значение.
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 сопоставляет один или несколько ключей со значением. Более формально, возвращает 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(Object, Object)
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 для указанного значения - См. также:
get(Object)
add
public void add(RenderingHints hints)
Добавляет все ключи и соответствующие значения из указанного RenderingHints объекта в этот RenderingHints объект. Ключи, присутствующие в этом RenderingHints объекте, но отсутствующие в указанном RenderingHints объекте, не затрагиваются.
- Параметры:
-
hints- набор пар ключ/значение, которые нужно добавить в этотRenderingHintsобъект
clear
public void clear()
Очищает этот RenderingHints объект от всех пар ключ/значение.
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, результаты итерации не определены. Набор поддерживает удаление элементов, что удаляет соответствующее сопоставление из RenderingHints, посредством операций Iterator.remove, Set.remove, removeAll retainAll, и clear. Он не поддерживает операции add или addAll.
- Определено в:
-
keySetв интерфейсеMap<Object,Object> - Возвращает:
- представление типа
Setключей, содержащихся в этомRenderingHints.
values
public Collection<Object> values()
Возвращает представление типа Collection значений, содержащихся в этом RenderinHints. Коллекция поддерживается 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.
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. - Определено в:
-
equalsв интерфейсеMap<Object,Object> - Переопределяет:
-
equalsв классеObject - Параметры:
-
o-Objectдля сравнения на равенство с этимRenderingHints. - Возвращает:
-
trueесли указанныйObjectравен этомуRenderingHints. - См. также:
-
Object.hashCode(),HashMap
hashCode
public int hashCode()
Возвращает значение хэш-кода для этого RenderingHints. Хэш-код объекта RenderingHints определяется как сумма хэш-кодов каждого Entry в представлении типа RenderingHints entrySet объекта. Это гарантирует, что t1.equals(t2) подразумевает t1.hashCode()==t2.hashCode() для любых двух объектов Map t1 и t2, как требуется общим контрактом Object.hashCode.
- Определено:
-
hashCodeв интерфейсеMap<Object,Object> - Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение хэш-кода для этого
RenderingHints. - См. также:
-
Map.Entry.hashCode(),Object.hashCode(),Object.equals(Object),equals(Object)
clone
public Object clone()
Создаёт копию этого объекта RenderingHints, содержащую те же данные, что и этот объект RenderingHints.
toString
public String toString()
Возвращает довольно длинное строковое представление хэш-карты, содержащей сопоставления ключей со значениями для этого объекта RenderingHints.
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.