模块 java.desktop

类 GlyphMetrics

java.lang.Object
java.awt.font.GlyphMetrics

public final class GlyphMetrics extends Object
GlyphMetrics 类表示单个字形的信息。字形是一个或多个字符的视觉表示。许多不同的字形可用于表示单个字符或字符组合。 GlyphMetrics 实例由 Font 生成,适用于特定 Font 中的特定字形。

字形可以是 STANDARD、LIGATURE、COMBINING 或 COMPONENT。

  • 标准字形通常用于表示单个字符。
  • LIGATURE 字形用于表示字符序列。
  • GlyphVector 中的 COMPONENT 字形不对应于文本模型中的特定字符。相反,COMPONENT 字形是出于印刷原因添加的,例如阿拉伯语对齐。
  • COMBINING 字形修饰 STANDARD 或 LIGATURE 字形,例如重音符号。插入符号不会出现在 COMBINING 字形之前。

通过 GlyphMetrics 可用的其他指标是前进的组件、视觉边界以及左侧和右侧轴承。

旋转字体的字形,或从已对字形应用旋转的 GlyphVector 获得的字形,可以具有同时包含 X 和 Y 组件的改进。通常预付款只有一个组成部分。

一个字形的前进是从字形的原点到下一个字形的原点沿基线的距离,基线可以是垂直的也可以是水平的。请注意,在 GlyphVector 中,由于字距调整或其他定位调整,从字形到其后续字形的距离可能不是字形的前进。

边界是完全包含字形轮廓的最小矩形。边界矩形是相对于字形的原点的。左侧方位角是从字形原点到其边界矩形左侧的距离。如果左侧方位角为负,则将部分字形绘制到其原点的左侧。右侧方位角是从边界矩形的右侧到下一个字形原点(原点加上前进)的距离。如果为负,则将部分字形绘制到下一个字形原点的右侧。请注意,由于光栅化和像素调整效果,边界不一定包含渲染字形时受影响的所有像素。

尽管可以直接构造 GlyphMetrics 的实例,但它们几乎总是从 GlyphVector 获得的。一旦构建,GlyphMetrics 对象是不可变的。

Example :

查询 Font 以获取字形信息

 Font font = ...;
 int glyphIndex = ...;
 GlyphMetrics metrics = GlyphVector.getGlyphMetrics(glyphIndex);
 int isStandard = metrics.isStandard();
 float glyphAdvance = metrics.getAdvance();
 
参见:
  • 字段摘要

    字段
    修饰符和类型
    Field
    描述
    static final byte
    指示表示组合字符(例如元音变音)的字形。
    static final byte
    指示后备存储中没有对应字符的字形。
    static final byte
    指示将多个字符表示为连字的字形,例如“fi”或“ffi”。
    static final byte
    指示表示单个标准字符的字形。
    static final byte
    指示没有视觉表示的字形。
  • 构造方法总结

    构造方法
    构造方法
    描述
    GlyphMetrics(boolean horizontal, float advanceX, float advanceY, Rectangle2D bounds, byte glyphType)
    构造一个 GlyphMetrics 对象。
    GlyphMetrics(float advance, Rectangle2D bounds, byte glyphType)
    构造一个 GlyphMetrics 对象。
  • 方法总结

    修饰符和类型
    方法
    描述
    float
    返回字形沿基线(水平或垂直)的前进。
    float
    返回字形前进的 x 组件。
    float
    返回字形前进的 y 组件。
    返回字形的边界。
    float
    返回字形的左侧(顶部)方位。
    float
    返回字形的右侧(底部)方位。
    int
    返回原始字形类型代码。
    boolean
    如果这是一个组合字形,则返回 true
    boolean
    如果这是一个组件字形,则返回 true
    boolean
    如果这是连字字形,则返回 true
    boolean
    如果这是标准字形,则返回 true
    boolean
    如果这是一个空白字形,则返回 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
      指示后备存储中没有对应字符的字形。该字形与逻辑上前面的非组件字形所表示的字符相关联。这用于 kashida 对齐或对现有字形的其他视觉修改。此字形与前一个字形之间没有插入符位置。
      参见:
    • 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 - 如果为真,则指标用于水平基线,否则它们用于垂直基线
      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()
      返回字形的右侧(底部)方位。

      这是从字形边界的右侧(底部)到前进的距离。如果字形的边界在 advance 的右侧(下方),则 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否则。