java - 如何使用Java Graphics.DrawString绘制Wingding.ttf字体的字符?

标签 java graphics drawstring non-unicode

我正在尝试使用 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"));

我该怎么做?

最佳答案

我不认为 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),你就可以得到你想要的样式和大小......

关于java - 如何使用Java Graphics.DrawString绘制Wingding.ttf字体的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10549171/

相关文章:

java - 如何在 Canvas 上绘制 JPanel?

vb.net - 使抽绳部分加粗

Java 泛型,返回泛型扩展

visual-c++ - 可视化代表电信网络的软件

平板电脑触摸屏上的 Java Swing 反馈按钮

java - 在 Java 中更改字体和绘制字符串的正确语法是什么?

java - 在信封上绘制文字

c# - 用户在 C# 中的图片框中放置文本

java - 如果我们有一 block 蛋糕,那么找到数组中最高平均值的最有效算法是什么?

java - 当从 fragment 更改我的 Activity 标题时会导致崩溃