Spec-Zone.ru › OpenJDK 27

Класс GlyphMetrics

java.lang.Object
java.awt.font.GlyphMetrics
public final class GlyphMetrics extends Object
Класс GlyphMetrics представляет информацию об одном глифе. Глиф — это визуальное представление одного или нескольких символов. Один символ или сочетание символов могут представляться множеством различных глифов. Экземпляры GlyphMetrics создаются классом Font и применяются к определённому глифу в конкретном Font.

Глифы бывают стандартными (STANDARD), лигатурными (LIGATURE), комбинируемыми (COMBINING) или компонентными (COMPONENT).

  • Стандартные глифы (STANDARD) обычно используются для представления отдельных символов.
  • Лигатурные глифы (LIGATURE) используются для представления последовательностей символов.
  • Компонентные глифы (COMPONENT) в GlyphVector не соответствуют определённому символу в текстовой модели. Вместо этого компонентные глифы добавляются по типографическим причинам, например для выравнивания арабского текста.
  • Комбинируемые глифы (COMBINING) дополняют стандартные или лигатурные глифы, например знаками ударения. Перед комбинируемыми глифами не отображаются позиции каретки.

Другие метрики, доступные через GlyphMetrics, — это компоненты продвижения, визуальные границы, а также левый и правый боковые выносы.

Глифы повёрнутого шрифта или глифы, полученные из GlyphVector, применившего поворот к глифу, могут иметь продвижение с компонентами X и Y. Обычно продвижение имеет только одну компоненту.

Продвижение глифа — это расстояние от начала координат глифа до начала координат следующего глифа вдоль базовой линии, которая может быть вертикальной или горизонтальной. Обратите внимание: в GlyphVector расстояние от глифа до следующего за ним глифа может отличаться от продвижения глифа из-за кернинга или других корректировок позиционирования.

Границы — это наименьший прямоугольник, полностью содержащий контур глифа. Прямоугольник границ задаётся относительно начала координат глифа. Левый боковой вынос — это расстояние от начала координат глифа до левой границы его прямоугольника. Если левый боковой вынос отрицателен, часть глифа отображается левее начала координат. Правый боковой вынос — это расстояние от правой границы прямоугольника до начала координат следующего глифа (начала координат плюс продвижение). Если он отрицателен, часть глифа отображается правее начала координат следующего глифа. Обратите внимание: границы не обязательно охватывают все пиксели, затрагиваемые при отображении глифа, из-за эффектов растеризации и коррекции пикселей.

Хотя экземпляры GlyphMetrics можно создавать напрямую, обычно их получают из GlyphVector. После создания объекты GlyphMetrics являются неизменяемыми.

Пример:

Получение информации о глифе из Font

Font font = ...;
int glyphIndex = ...;
GlyphMetrics metrics = GlyphVector.getGlyphMetrics(glyphIndex);
int isStandard = metrics.isStandard();
float glyphAdvance = metrics.getAdvance();
См. также:
  • Font
  • GlyphVector

Краткое описание полей

Модификатор и тип Поле Описание
static final byte COMBINING
Указывает на глиф, представляющий комбинируемый символ, например умлаут.
static final byte COMPONENT
Указывает на глиф, которому не соответствует символ в хранилище данных.
static final byte LIGATURE
Указывает на глиф, представляющий несколько символов в виде лигатуры, например «fi» или «ffi».
static final byte STANDARD
Указывает на глиф, представляющий один стандартный символ.
static final byte WHITESPACE
Указывает на глиф, не имеющий визуального представления.

Краткое описание конструкторов

Конструктор Описание
GlyphMetrics(boolean horizontal, float advanceX, float advanceY, Rectangle2D bounds, byte glyphType)
Создаёт объект GlyphMetrics.
GlyphMetrics(float advance, Rectangle2D bounds, byte glyphType)
Создаёт объект GlyphMetrics.

Краткое описание методов

Модификатор и тип Метод Описание
float getAdvance()
Возвращает продвижение глифа вдоль базовой линии (горизонтальной или вертикальной).
float getAdvanceX()
Возвращает компоненту X продвижения глифа.
float getAdvanceY()
Возвращает компоненту Y продвижения глифа.
Rectangle2D getBounds2D()
Возвращает границы глифа.
float getLSB()
Возвращает левый (верхний) боковой вынос глифа.
float getRSB()
Возвращает правый (нижний) боковой вынос глифа.
int getType()
Возвращает исходный код типа глифа.
boolean isCombining()
Возвращает true, если это комбинируемый глиф.
boolean isComponent()
Возвращает true, если это компонентный глиф.
boolean isLigature()
Возвращает true, если это лигатурный глиф.
boolean isStandard()
Возвращает true, если это стандартный глиф.
boolean isWhitespace()
Возвращает true, если это пробельный глиф.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание полей

STANDARD

public static final byte STANDARD
Указывает на глиф, представляющий один стандартный символ.
См. также:
  • Значения констант полей

LIGATURE

public static final byte LIGATURE
Указывает на глиф, представляющий несколько символов в виде лигатуры, например «fi» или «ffi». За ним следуют заполняющие глифы для оставшихся символов. Заполняющие и комбинируемые глифы можно чередовать, чтобы управлять позиционированием знаков ударения относительно логически предшествующей лигатуры.
См. также:
  • Значения констант полей

COMBINING

public static final byte COMBINING
Указывает на глиф, представляющий комбинируемый символ, например умлаут. Между этим глифом и предшествующим глифом нет позиции каретки.
См. также:
  • Значения констант полей

COMPONENT

public static final byte COMPONENT
Указывает на глиф, которому не соответствует символ в хранилище данных. Глиф связан с символом, представленным логически предшествующим глифом, не являющимся компонентным. Это используется для выравнивания кашиды или других визуальных изменений существующих глифов. Между этим глифом и предшествующим глифом нет позиции каретки.
См. также:
  • Значения констант полей

WHITESPACE

public static final byte WHITESPACE
Указывает на глиф, не имеющий визуального представления. Его можно добавить к другим значениям кода, чтобы обозначить невидимый глиф.
См. также:
  • Значения констант полей

Подробное описание конструкторов

GlyphMetrics

public GlyphMetrics(float advance, Rectangle2D bounds, byte glyphType)
Создаёт объект GlyphMetrics.
Параметры:
advance — ширина продвижения глифа
bounds — границы чёрного прямоугольника глифа
glyphType — тип глифа

GlyphMetrics

public GlyphMetrics(boolean horizontal, float advanceX, float advanceY, Rectangle2D bounds, byte glyphType)
Создаёт объект GlyphMetrics.
Параметры:
horizontal — если значение true, метрики относятся к горизонтальной базовой линии, иначе — к вертикальной
advanceX — компонента X продвижения глифа
advanceY — компонента Y продвижения глифа
bounds — визуальные границы глифа
glyphType — тип глифа
Начиная с версии:
1.4

Подробное описание методов

getAdvance

public float getAdvance()
Возвращает продвижение глифа вдоль базовой линии (горизонтальной или вертикальной).
Возвращает:
продвижение глифа

getAdvanceX

public float getAdvanceX()
Возвращает компоненту X продвижения глифа.
Возвращает:
компоненту X продвижения глифа
Начиная с версии:
1.4

getAdvanceY

public float getAdvanceY()
Возвращает компоненту Y продвижения глифа.
Возвращает:
компоненту Y продвижения глифа
Начиная с версии:
1.4

getBounds2D

public Rectangle2D getBounds2D()
Возвращает границы глифа. Это ограничивающий прямоугольник контура глифа. Из-за эффектов растеризации и выравнивания пикселей он не обязательно охватывает пиксели, затрагиваемые при отображении глифа.
Возвращает:
Rectangle2D, задающий границы глифа.

getLSB

public float getLSB()
Возвращает левый (верхний) боковой вынос глифа.

Это расстояние от точки 0, 0 до левой (верхней) границы глифа. Если граница глифа находится левее (выше) начала координат, значение LSB отрицательно.

Возвращает:
левый боковой вынос глифа.

getRSB

public float getRSB()
Возвращает правый (нижний) боковой вынос глифа.

Это расстояние от правой (нижней) границы глифа до продвижения. Если граница глифа находится правее (ниже) продвижения, значение RSB отрицательно.

Возвращает:
правый боковой вынос глифа.

getType

public int getType()
Возвращает исходный код типа глифа.
Возвращает:
исходный код типа глифа.

isStandard

public boolean isStandard()
Возвращает true, если это стандартный глиф.
Возвращает:
true, если это стандартный глиф; в противном случае — false.

isLigature

public boolean isLigature()
Возвращает true, если это лигатурный глиф.
Возвращает:
true, если это лигатурный глиф; в противном случае — false.

isCombining

public boolean isCombining()
Возвращает true, если это комбинируемый глиф.
Возвращает:
true, если это комбинируемый глиф; в противном случае — false.

isComponent

public boolean isComponent()
Возвращает true, если это компонентный глиф.
Возвращает:
true, если это компонентный глиф; в противном случае — false.

isWhitespace

public boolean isWhitespace()
Возвращает true, если это пробельный глиф.
Возвращает:
true, если это пробельный глиф; в противном случае — false.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, где приведены более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, способы обхода проблем и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API