Module  java.desktop
软件包  java.awt.font

Class GlyphMetrics



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

    标志是标准,LIGATURE,组合或组件。

    • 标准字形通常用于表示单个字符。
    • LIGATURE字形用于表示字符序列。
    • GlyphVector中的 COMPONENT字形与文本模型中的特定字符不对应。 相反,COMPONENT字形被添加为排版原因,如阿拉伯语对齐。
    • 组合字形修饰STANDARD或LIGATURE字形,如重音符号。 拼贴不会在组合字形之前出现。

    通过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();
     
    另请参见:
    FontGlyphVector
    • Field Summary

      Fields  
      Modifier and Type Field 描述
      static byte COMBINING
      表示表示组合字符的字形,例如变音符号。
      static byte COMPONENT
      表示后备存储中没有相应字符的字形。
      static byte LIGATURE
      表示一个字形,表示多个字符为连字,例如“fi”或“ffi”。
      static byte STANDARD
      表示表示单个标准字符的字形。
      static byte WHITESPACE
      表示没有视觉表示的字形。
    • 构造方法摘要

      构造方法  
      Constructor 描述
      GlyphMetrics​(boolean horizontal, float advanceX, float advanceY, Rectangle2D bounds, byte glyphType)
      构造一个 GlyphMetrics对象。
      GlyphMetrics​(float advance, Rectangle2D bounds, byte glyphType)
      构造一个 GlyphMetrics对象。
    • 字段详细信息

      • STANDARD

        public static final byte STANDARD
        表示表示单个标准字符的字形。
        另请参见:
        Constant Field Values
      • LIGATURE

        public static final byte LIGATURE
        表示一个字形,表示多个字符为连字,例如“fi”或“ffi”。 后面是填充字形的剩余字符。 填充和组合字形可以混合,以控制在逻辑上的连字上的重音标记的定位。
        另请参见:
        Constant Field Values
      • COMBINING

        public static final byte COMBINING
        表示表示组合字符的字形,例如变音符号。 这个字形与上一个字形之间没有插入位置。
        另请参见:
        Constant Field Values
      • COMPONENT

        public static final byte COMPONENT
        表示后备存储中没有相应字符的字形。 字形与由逻辑上前面的非组件字形表示的字符相关联。 这用于kashida对齐或其他对现有字形的视觉修改。 这个字形与上一个字形之间没有插入位置。
        另请参见:
        Constant Field Values
      • WHITESPACE

        public static final byte WHITESPACE
        表示没有视觉表示的字形。 它可以添加到其他代码值以指示不可见的字形。
        另请参见:
        Constant Field Values
    • 构造方法详细信息

      • 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​()
        返回字形的右侧(底部)侧面。

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