- java.lang.Object
-
- java.awt.font.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();
- 另请参见:
-
Font,GlyphVector
-
-
Field Summary
Fields Modifier and Type Field 描述 static byteCOMBINING表示表示组合字符的字形,例如变音符号。static byteCOMPONENT表示后备存储中没有相应字符的字形。static byteLIGATURE表示一个字形,表示多个字符为连字,例如“fi”或“ffi”。static byteSTANDARD表示表示单个标准字符的字形。static byteWHITESPACE表示没有视觉表示的字形。
-
构造方法摘要
构造方法 Constructor 描述 GlyphMetrics(boolean horizontal, float advanceX, float advanceY, Rectangle2D bounds, byte glyphType)构造一个GlyphMetrics对象。GlyphMetrics(float advance, Rectangle2D bounds, byte glyphType)构造一个GlyphMetrics对象。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 floatgetAdvance()返回字符沿基线的前进(水平或垂直)。floatgetAdvanceX()返回字形前进的x分量。floatgetAdvanceY()返回字形前进的y分量。Rectangle2DgetBounds2D()返回字形的边界。floatgetLSB()返回字形的左(上)侧方向。floatgetRSB()返回字形的右侧(底部)侧面。intgetType()返回原始字形类型代码。booleanisCombining()如果这是一个组合字形,则返回true。booleanisComponent()如果这是一个组件字形,则返回true。booleanisLigature()如果这是一个连字符,返回true。booleanisStandard()如果这是标准字形,则返回true。booleanisWhitespace()返回true如果这是一个空白字形。
-
-
-
字段详细信息
-
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。
-
-