如上图,这个是一个有中文与英文的字符串。 中文与英文字符的宽高是不一样的,如果想要生成一张宽高刚的图片,这样我就需要计算每一个字符的宽度,及合适的高;
java.awt.FontMetrics 这个类对文字的宽高位置有详细的介绍;
计算使用字体的一段字符串的宽public static int getWordWidth(Font font, String content) {
FontDesignMetrics metrics = FontDesignMetrics.getMetrics(font);
int width = 0;
for (int i = 0; i
width += metrics.charWidth(content.charAt(i));
}
return width;
}
计算使用字体的最大的高度FontDesignMetrics metrics = FontDesignMetrics.getMetrics(font);
int height = metrics.getHeight();
在图片是写文字时最合适的位置
Ascent是从基线到顶部最大的高,也可以当做一个种字体画图时最有可以点用的高度graphics.drawString(content, 0, metrics.getAscent());
测试代码import sun.font.FontDesignMet