Класс GlyphMetrics
public final class GlyphMetrics extends Object
GlyphMetrics представляет информацию об одном глифе. Глиф — это визуальное представление одного или нескольких символов. Для представления одного символа или сочетания символов могут использоваться различные глифы. Экземпляры GlyphMetrics создаются классом Font и применяются к определённому глифу в конкретном Font. Глифы бывают стандартными (STANDARD), лигатурными (LIGATURE), комбинируемыми (COMBINING) или компонентными (COMPONENT).
- Стандартные глифы обычно используются для представления отдельных символов.
- Лигатурные глифы используются для представления последовательностей символов.
- Компонентные глифы в
GlyphVectorне соответствуют определённому символу в текстовой модели. Вместо этого компонентные глифы добавляются по типографским причинам, например для выравнивания арабского текста. - Комбинируемые глифы дополняют стандартные или лигатурные глифы, например знаками ударения. Перед комбинируемыми глифами не отображаются маркеры каретки.
Другие метрики, доступные через 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();
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final byte |
COMBINING |
Указывает на глиф, представляющий комбинируемый символ, например умлаут. |
static final byte |
COMPONENT |
Указывает на глиф, которому не соответствует символ в базовом хранилище. |
static final byte |
LIGATURE |
Указывает на глиф, представляющий несколько символов в виде лигатуры, например «fi» или «ffi». |
static final byte |
STANDARD |
Указывает на глиф, представляющий один стандартный символ. |
static final byte |
WHITESPACE |
Указывает на глиф без визуального представления. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
GlyphMetrics |
Создаёт объект GlyphMetrics. |
GlyphMetrics |
Создаёт объект 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, если это пробельный глиф. |
Подробное описание полей
STANDARD
public static final byte STANDARD
- См. также:
LIGATURE
public static final byte LIGATURE
- См. также:
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 продвижения глифа
- С версии:
- 1.4
getAdvanceY
public float getAdvanceY()
- Возвращает:
- компонент 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.
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/awt/font/GlyphMetrics.html