Класс GlyphMetrics
- java.lang.Object
-
- java.awt.font.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();
- См. также:
-
Font,GlyphVector
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
static byte | COMBINING | Указывает на глиф, представляющий комбинирующий символ, такой как умляут. |
static byte | COMPONENT | Указывает на глиф без соответствующего символа в буфере. |
static byte | LIGATURE | Указывает на глиф, представляющий несколько символов как лигатуру, например, 'fi' или 'ffi'. |
static byte | STANDARD | Указывает на глиф, представляющий один стандартный символ. |
static byte | WHITESPACE | Указывает на глиф без визуального представления. |
Конструкторы
| Конструктор | Описание |
|---|---|
GlyphMetrics(boolean horizontal,
float advanceX,
float advanceY,
Rectangle2D bounds,
byte glyphType) | Создаёт объект |
GlyphMetrics(float advance,
Rectangle2D bounds,
byte glyphType) | Создаёт объект |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
float | getAdvance() | Возвращает продвижение глифа вдоль базовой линии (горизонтальной или вертикальной). |
float | getAdvanceX() | Возвращает X-компонент продвижения глифа. |
float | getAdvanceY() | Возвращает Y-компонент продвижения глифа. |
Rectangle2D | getBounds2D() | Возвращает границы глифа. |
float | getLSB() | Возвращает отступ слева (сверху) глифа. |
float | getRSB() | Возвращает отступ справа (снизу) глифа. |
int | getType() | Возвращает код типа глифа в сыром виде. |
boolean | isCombining() | Возвращает |
boolean | isComponent() | Возвращает |
boolean | isLigature() | Возвращает |
boolean | isStandard() | Возвращает |
boolean | isWhitespace() | Возвращает |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
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в противном случае.
© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/font/GlyphMetrics.html