根据字符串、字体、字体颜色、字号生成透明图片

// 取得系统字体
	public static TreeMap<String, String> getFonts() {
		TreeMap<String, String> map = new TreeMap<String, String>();
		Font[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment()
				.getAllFonts();
		if (fonts == null || fonts.length < 1) {
			return map;
		}
		for (int i = 0; i < fonts.length; i++) {
			map.put(fonts[i].getFamily(), fonts[i].getFamily());// 获取字体
		}
		return map;
	}

	// 根据字符串、字体、字体颜色、字号生成透明图片
	public static void drawImg3(String txtStr, String txtFont, int txtColor,
			int txtSize) throws Exception {

		Font font = new Font(txtFont, Font.PLAIN, txtSize);
		JComponent j = new JLabel();
		FontMetrics fm = j.getFontMetrics(font);
		int width = fm.stringWidth(txtStr); // 字符串像素宽度
		int height = fm.getHeight(); // 字符串像素高度
		height *= 2; // 图片高度为文字的两倍高度

		// 注意BufferedImage.TYPE_INT_ARGB 与 BufferedImage.TYPE_INT_RGB
		BufferedImage image = new BufferedImage(width, height,
				BufferedImage.TYPE_INT_ARGB);
		Graphics2D g2d = image.createGraphics();
		// 若用RenderingHints.KEY_TEXT_ANTIALIASING
		// 文本抗锯齿提示键;VALUE_TEXT_ANTIALIAS_ON 文本抗锯齿提示值——使用某种抗锯齿形式完成文本呈现。不能去掉锯齿
		g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
				RenderingHints.VALUE_ANTIALIAS_ON); // 去掉图片文字锯齿
		g2d.setFont(font);
		g2d.setColor(new Color(txtColor));
		g2d.drawString(txtStr, 0, height / 2); // 本想生成与原字符串相同大小图片未实现,惭愧
		// 图象生效
		g2d.dispose();
		image.flush();
		// 生成到本地图片
		ImageIO.write(image, "png", new File("f:/test/t3.png"));
	}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值