JAVA繪製圖像並繪製不同字體符號

用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);
		}

	}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章