Класс RenderingHints
- Все реализованные интерфейсы:
-
Cloneable,Map<Object,Object>
public class RenderingHints extends Object implements Map<Object,Object>, Cloneable
RenderingHints определяет и управляет коллекциями ключей и связанных значений, которые позволяют приложению влиять на выбор алгоритмов, используемых другими классами для выполнения операций отрисовки и обработки изображений. Класс Graphics2D, а также классы, реализующие BufferedImageOp и RasterOp, предоставляют методы для получения и, возможно, установки отдельных или групп ключей RenderingHints и их соответствующих значений. При выполнении операций отрисовки или обработки изображений эти реализации должны проверять значения любых RenderingHints, запрошенных вызывающим объектом, и соответствующим образом настраивать используемые алгоритмы по возможности наилучшим образом. Обратите внимание, что, поскольку эти ключи и значения являются указаниями, не требуется, чтобы данная реализация поддерживала все возможные варианты, указанные ниже, или чтобы она могла реагировать на запросы о модификации своего выбора алгоритма. Значения различных ключей указаний также могут взаимодействовать таким образом, что в одной ситуации все варианты данного ключа поддерживаются, но реализация может быть более ограниченной, когда изменяются значения, связанные с другими ключами. Например, некоторые реализации могут предоставлять несколько типов пороговой обработки, когда отключение сглаживания, но могут иметь небольшой контроль над пороговой обработкой при включенном сглаживании. Полный набор поддерживаемых ключей и указаний также может различаться в зависимости от назначения, поскольку среды выполнения могут использовать различные основанные модули для отрисовки на экране или для BufferedImage объектов или во время печати.
Реализации могут игнорировать указания полностью, но должны пытаться использовать алгоритм реализации, который максимально приближен к запросу. Если реализация поддерживает данный алгоритм при использовании любого значения для соответствующего ключа указания, то, по меньшей мере, она должна делать это, когда значение для этого ключа является точным значением, которое задаёт алгоритм.
Ключи, используемые для управления указаниями, представляют собой специальные значения, которые являются подклассами соответствующего класса RenderingHints.Key. Многие распространенные указания выражены ниже в виде статических констант в этом классе, но этот список не претендует на полноту. Другие указания могут быть созданы другими пакетами путем определения новых объектов, которые являются подклассами класса Key и определения соответствующих значений.
Краткое описание вложенных классов
| Modifier and Type | Class | Description |
|---|---|---|
static class |
RenderingHints.Key |
Определяет базовый тип всех ключей, используемых вместе с классом RenderingHints для управления различными вариантами алгоритмов в каналах рендеринга и обработки изображений. |
Краткое описание полей
| Modifier and Type | Field | Description |
|---|---|---|
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
- См. также:
Значение подсказки антиалиасинга текста LCD_HRGB
public static final Object VALUE_TEXT_ANTIALIAS_LCD_HRGB
Примечания:
При выборе, применять ли любое из значений подсказок текста ЖК-дисплея, реализация может учитывать такие факторы, как необходимость глубины цвета назначения не менее 15 бит на пиксель (то есть 5 бит на компонент цвета), характеристики шрифта, например, то, могут ли встраиваемые битовые карты привести к лучшим результатам, или при отображении на удалённом сетевом устройстве, разрешая это только в том случае, если доступны соответствующие протоколы, или игнорируя подсказку при выполнении рендеринга очень высокого разрешения или если целевое устройство не подходит, например, при печати.
Эти подсказки могут быть применены и при рендеринге в программные изображения, но эти изображения могут не подходить для общего экспорта, так как текст будет рендерирован соответствующим образом для определённой организации субпикселей. Также не рекомендуется использовать сжатые изображения, а также форматы изображений, такие как GIF, которые имеют ограниченное количество цветов. Поэтому, если изображение предназначено только для рендеринга на устройстве отображения с такой же конфигурацией, может быть лучше выбрать другую подсказку антиалиасинга текста, например, VALUE_TEXT_ANTIALIAS_ON.
Выбор значения, не соответствующего используемому ЖК-дисплею, вероятно, приведёт к ухудшению качества текста. На устройствах отображения (например, кинескопах), которые не обладают теми же характеристиками, что и ЖК-дисплеи, общий эффект может быть похожим на стандартный антиалиасинг текста, но качество может быть ухудшено искажением цвета. Аналоговые ЖК-дисплеи также могут показать немного преимуществ по сравнению со стандартным антиалиасингом текста и быть похожими на кинескопы.
Другими словами, для достижения наилучших результатов используйте ЖК-дисплей с цифровым разъёмом и укажите соответствующую конфигурацию субпикселей.
- С:
- 1.6
- См. также:
Значение подсказки антиалиасинга текста LCD_HBGR
public static final Object VALUE_TEXT_ANTIALIAS_LCD_HBGR
VALUE_TEXT_ANTIALIAS_LCD_HRGB.- С:
- 1.6
- См. также:
Значение подсказки антиалиасинга текста LCD_VRGB
public static final Object VALUE_TEXT_ANTIALIAS_LCD_VRGB
VALUE_TEXT_ANTIALIAS_LCD_HRGB.- С:
- 1.6
- См. также:
Значение подсказки антиалиасинга текста LCD_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
- См. также:
Значение подсказки дробных метрик шрифта — включено
public static final Object VALUE_FRACTIONALMETRICS_ON
- См. также:
Значение подсказки дробных метрик шрифта — по умолчанию
public static final Object VALUE_FRACTIONALMETRICS_DEFAULT
- См. также:
Ключ подсказки интерполяции
public static final RenderingHints.Key KEY_INTERPOLATION
INTERPOLATION управляет тем, как фильтруются или повторно сэмплируются пиксели изображения во время операции рендеринга изображения. Неявно предполагается, что изображения определяют образцы цвета в целочисленных координатах. Когда изображения рендерятся вертикально без масштабирования на целевой объект, выбор того, какие пиксели изображения отображаются на каких пикселях устройства, очевиден, и образцы в целочисленных координатах изображения переносятся на пиксели в соответствующих целочисленных координатах на сетке пикселей устройства один к одному. Когда изображения рендерятся в масштабируемой, вращаемой или трансформированной системе координат, отображение координат пикселей устройства обратно в изображение может поставить вопрос о том, какой образец цвета использовать для непрерывных координат, находящихся между целочисленными позициями предоставленных образцов изображения. Алгоритмы интерполяции определяют функции, которые предоставляют образец цвета для любых непрерывных координат в изображении на основе образцов цвета в окружающих целочисленных координатах.
Допустимые значения для этой подсказки:
Значение подсказки интерполяции — ближайший сосед
public static final Object VALUE_INTERPOLATION_NEAREST_NEIGHBOR
При увеличении масштаба изображения оно будет выглядеть соответственно блочным. При уменьшении масштаба изображения цвета исходных пикселей будут использоваться без изменений или полностью пропущены в выходном представлении.
- См. также:
Значение подсказки интерполяции — билинейная
public static final Object VALUE_INTERPOLATION_BILINEAR
При увеличении масштаба изображения нет блочных границ между цветами в изображении, как при NEAREST_NEIGHBOR, но слияние может показывать некоторые незначительные разрывы вдоль горизонтальных и вертикальных границ, выровненных с образцами, вызванные внезапным изменением наклона интерполяции с одной стороны образца на другую. При уменьшении масштаба изображения больше пикселей изображения получают свои цветовые образцы в результирующем выходе, так как каждый выходной пиксель получает цветовые данные до 4 пикселей изображения.
- См. также:
Значение подсказки интерполяции — бикубическая
public static final Object VALUE_INTERPOLATION_BICUBIC
X, так и в Y, чтобы получить образец цвета. Концептуально представление изображения очень похоже на представление, используемое в алгоритме BILINEAR, за исключением того, что градиенты цветов, которые соединяют образцы, являются кривыми и имеют лучшую непрерывность наклона при пересечении границ образцов. При увеличении масштаба изображения нет блочных границ, и интерполяция должна казаться более гладкой и с лучшим отображением любых границ в исходном изображении, чем при BILINEAR. При уменьшении масштаба изображения еще больше исходных цветовых образцов из исходного изображения будут переданы и представлены.
- См. также:
Ключ подсказки альфа-интерполяции
public static final RenderingHints.Key KEY_ALPHA_INTERPOLATION
ALPHA_INTERPOLATION — это общая подсказка, которая дает общее рекомендацию о том, следует ли больше смещать выбор алгоритмов альфа-смешивания в сторону скорости или качества при оценке компромиссов. Эта подсказка может управлять выбором вычислений альфа-смешивания, которые жертвуют точностью, чтобы использовать быстрые таблицы поиска или инструкции SIMD с меньшей точностью. Эта подсказка также может контролировать, преобразуются ли цветовые и альфа-значения в линейное цветовое пространство во время вычислений для достижения более линейного визуального эффекта за счет дополнительных вычислений на пиксель.
Допустимые значения для этой подсказки:
Значение подсказки альфа-интерполяции — скорость
public static final Object VALUE_ALPHA_INTERPOLATION_SPEED
- См. также:
Значение подсказки альфа-интерполяции — качество
public static final Object VALUE_ALPHA_INTERPOLATION_QUALITY
- См. также:
Значение подсказки альфа-интерполяции — по умолчанию
public static final Object VALUE_ALPHA_INTERPOLATION_DEFAULT
- См. также:
Ключ подсказки рендеринга цвета
public static final RenderingHints.Key KEY_COLOR_RENDERING
COLOR_RENDERING контролирует точность приближения и преобразования при хранении цветов в целевом изображении или поверхности. Когда операция рендеринга или обработки изображения создает значение цвета, которое должно быть сохранено в целевом объекте, оно сначала должно преобразовать этот цвет в форму, подходящую для хранения в целевом изображении или поверхности. Минимально, цветовые компоненты должны быть преобразованы в битовые представления и упорядочены в правильном порядке, или должен быть выбран индекс в таблицу поиска цвета, прежде чем данные могут быть сохранены в целевой памяти. Без этого минимального преобразования данные в целевом объекте, вероятно, будут представлять случайные, неправильные или даже неподдерживаемые значения. Алгоритмы для быстрого преобразования результатов операций рендеринга в цветовой формат наиболее распространенных целевых объектов хорошо известны и достаточно оптимальны для выполнения.
Простое выполнение самого основного преобразования цветового формата для хранения цветов в целевом объекте может потенциально игнорировать разницу в калибровке ColorSpace источника и целевого объекта или другие факторы, такие как линейность гамма-коррекции. Если источник и цель ColorSpace не идентичны, для правильного выполнения операции рендеринга с максимальной точностью представленных цветов цвета источника должны быть преобразованы в независимое от устройства ColorSpace, а результаты затем преобразованы обратно в целевое ColorSpace. Кроме того, если вычисления, такие как смешивание нескольких цветов источника, должны выполняться во время операции рендеринга, большая визуальная ясность может быть достигнута, если промежуточное независимое от устройства ColorSpace выбрано с линейной зависимостью между вычисляемыми значениями и восприятием человеческим глазом кривых отклика выходного устройства.
Допустимые значения для этой подсказки:
Значение подсказки рендеринга цвета — скорость
public static final Object VALUE_COLOR_RENDER_SPEED
- См. также:
Значение подсказки рендеринга цвета — качество
public static final Object VALUE_COLOR_RENDER_QUALITY
- См. также:
Значение подсказки рендеринга цвета — по умолчанию
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. Представление Collection поддерживается RenderingHints, поэтому изменения в RenderingHints отражаются в Collection, и наоборот. Если RenderingHints изменяется во время итерации по Collection, результаты итерации не определены. Представление 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. Представление Set поддерживается этим 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. - См. также:
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, 2023, 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/21/docs/api/java.desktop/java/awt/RenderingHints.html