ttfhorizontalmetricstable.java
来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 73 行
JAVA
73 行
// Copyright 2001, FreeHEP.
package org.jnode.awt.font.truetype;
import java.io.IOException;
/**
* HMTX Table.
*
* @author Simon Fischer
* @version $Id: TTFHorizontalMetricsTable.java,v 1.1 2003/11/25 11:51:38 epr Exp $
*/
public class TTFHorizontalMetricsTable extends TTFTable {
private int[] advanceWidth;
private short[] leftSideBearing;
private short[] leftSideBearing2;
public String getTag() {
return "hmtx";
}
public void readTable() throws IOException {
final TTFFontData font = getFont();
final int numberOfHMetrics = font.getHorizontalHeaderTable().getNumberOfHMetrics();
final int numGlyphs = font.getMaxPTable().numGlyphs;
advanceWidth = new int[numberOfHMetrics];
leftSideBearing = new short[numberOfHMetrics];
for (int i = 0; i < numberOfHMetrics; i++) {
advanceWidth[i] = ttf.readUFWord();
leftSideBearing[i] = ttf.readFWord();
}
leftSideBearing2 = ttf.readShortArray(numGlyphs - numberOfHMetrics);
}
public String toString() {
String str = super.toString();
str += "\n hMetrics[" + advanceWidth.length + "] = {";
for (int i = 0; i < advanceWidth.length; i++) {
if (i % 8 == 0)
str += "\n ";
str += "(" + advanceWidth[i] + "," + leftSideBearing[i] + ") ";
}
str += "\n }";
str += "\n lsb[" + leftSideBearing2.length + "] = {";
for (int i = 0; i < leftSideBearing2.length; i++) {
if (i % 16 == 0)
str += "\n ";
str += leftSideBearing2[i] + " ";
}
str += "\n }";
return str;
}
/**
* @param index
* @return The advance width for a given index
*/
public int getAdvanceWidth(int index) {
return this.advanceWidth[index];
}
/**
* @param index
* @return The left side bearing for a given index
*/
public int getLeftSideBearing(int index) {
return this.leftSideBearing[index];
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?