Spec-Zone.ru › OpenJDK 21

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

Методы, унаследованные от класса 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()
Возвращает границы глифа. Это ограничивающая прямоугольник контура глифа. Из-за растрирования и эффектов выравнивания пикселей он не обязательно охватывает пиксели, которые затрагиваются при отрисовке глифа.
Возвращает:
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

Spec-Zone.ru

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