Класс GlyphMetrics
public final class GlyphMetrics extends Object
GlyphMetrics представляет информацию для отдельного глифа. Глиф — это визуальное представление одного или нескольких символов. Для представления одного символа или сочетания символов может использоваться множество различных глифов. Экземпляры класса GlyphMetrics генерируются методом Font и относятся к конкретному глифу в определённом Font. Глифы могут быть стандартными, лигатурными, комбинирующими или составными.
- Стандартные глифы обычно используются для представления отдельных символов.
- Лигатурные глифы используются для представления последовательностей символов.
- Составные глифы в
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()
- Возвращает:
- a
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, 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/font/GlyphMetrics.html