Класс 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.

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, если это глиф пробела.

Методы, объявленные в классе 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

Spec-Zone .ru
спецификации, руководства, описания, API