用JAVA實現的一段代碼,繪製圖像,並添加不同字體的glyph。
String imgPath = "./data/imgs/";
String imgName = "tryDrawFontGlyph.png";
@Test
public void drawingGlyph() throws IOException {
int width = 600;
int height = 600;
BufferedImage bimg = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
Graphics2D glyphsGph = bimg.createGraphics();
glyphsGph.setColor(Color.yellow);
glyphsGph.setBackground(Color.white);
glyphsGph.fillRect(0, 0, width, height);
glyphsGph.drawImage(bimg, 0, 0, null);
//微軟雅黑 Bold
Font font_1 = new Font("微軟雅黑",Font.BOLD,20);
glyphsGph.setFont(font_1);
glyphsGph.setColor(Color.WHITE);
glyphsGph.drawString("論標題的重要性",20,105);
Font font_2 = new Font("Arial Unicode MS", Font.BOLD|Font.ITALIC, 50);
glyphsGph.setFont(font_2);
glyphsGph.setColor(Color.BLUE);
glyphsGph.drawString("論標題的重要性",200,200);
glyphsGph.dispose();
File outputfile = new File(imgPath + imgName);
System.out.println(outputfile.getAbsolutePath());
ImageIO.write(bimg, "png", outputfile);
GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
Font[] fonts = e.getAllFonts();
for (Font font : fonts) {
System.out.println(font.getNumGlyphs());
System.out.println(font.canDisplayUpTo("中華"));
String fontName = font.getFontName();
System.out.println(fontName);
}
}