模块  java.desktop
软件包  java.awt.font

Class GlyphMetrics


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

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

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

    通过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
    • 字段汇总

      字段  
      变量和类型 字段 描述
      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对象。
    • 字段详细信息

      • 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 - 如果为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