1

我正在尝试使用 Java Graphics.DrawString 从 Wingding.ttf 字体中绘制字符。但生成的图像仅包含矩形而不是字符。

BufferedImage image = new BufferedImage(100, 100, BufferedImage.TYPE_4BYTE_ABGR);

Graphics graphics = image.getGraphics();

Font font = new Font("Wingdings", Font.PLAIN, 20);
graphics.setFont(font);

graphics.setColor(Color.BLACK);

graphics.drawString("\u00d8", 10, 10); // THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD char

ImageIO.write(image, "PNG", new File(TEST_DATA_DIR + "bullet_char.png"));

我怎样才能做到这一点?

4

2 回答 2

2

我不认为wingdings是“标准”字体之一

Font font = null;
try {
    font=Font.createFont( Font.TRUETYPE_FONT,
        new FileInputStream(new File("/pathto/WINGDINGS.TTF")) );
} catch(Exception e) {
    System.out.println(e);
}
font=font.deriveFont(Font.PLAIN, 200);
graphics.setFont(font);

加载字体后(始终为 PLANE 1 pnt),您可以导出所需的样式和大小....

于 2012-08-02T00:44:43.197 回答
0

在这里已经回答了类似的问题:在 java applet 中绘制异国字体,您需要通过\uF0d8而不是\u00d8.

graphics.drawString("\uF0d8", 10, 10);
于 2014-08-26T07:53:50.613 回答