java 图片上写入文字

以下方法在fc6下测试通过,假设用户的jre路径为 /usr/java/jdk1.6.0_03/jre/
#cd /usr/java/jdk1.6.0_03/jre/lib/fonts
#sudo mkdir fallback
将C:\WINDOWS\Fonts\simsun.ttc拷贝到 /usr/java/jdk1.6.0_03/jre/lib/fonts/fallback文件夹内 ok!

		//读取图片文件,得到BufferedImage对象
		BufferedImage bimg=ImageIO.read(new FileInputStream("c:/u1.jpg"));
		//得到Graphics2D 对象
		Graphics2D g2d=(Graphics2D)bimg.getGraphics();
		//设置颜色和画笔粗细
		g2d.setColor(Color.RED);
		g2d.setStroke(new BasicStroke(5));
		g2d.setFont(new Font("Serif", Font.PLAIN, 13));
		//绘制图案或文字
		g2d.drawString("陈克永", 174, 257);
		g2d.drawString("2015", 279, 257);
		g2d.drawString("8", 343, 257);

		//保存新图片
		ImageIO.write(bimg, "JPG",new FileOutputStream("c:/u2.jpg"));	


public String lpzjImg(){
		this.getResponse().setContentType("image/jpeg;charset=UTF-8");
		this.getResponse().setHeader("Content-Disposition", "attachment;filename=lpzj.jpg");
		try{
			//读取图片文件,得到BufferedImage对象
			BufferedImage bimg=ImageIO.read(new FileInputStream(FileAction.class.getClassLoader().getResource("/").getPath()+"other/lpzjjz.jpg"));
			//得到Graphics2D 对象
			Graphics2D g2d=(Graphics2D)bimg.getGraphics();
			//设置颜色和画笔粗细
			g2d.setColor(Color.RED);
			g2d.setStroke(new BasicStroke(5));
			g2d.setFont(new Font("Serif", Font.PLAIN, 13));
			//绘制图案或文字
			Object tupfullname = xhjConsoleDao.getBaseSession().createSQLQuery("select fullname from tbl_user_profile  where id="+userProfileName).uniqueResult();
			g2d.drawString(tupfullname.toString(), 174, 257);
			g2d.drawString(lpzjYearMonth.substring(0, 4), 279, 257);
			g2d.drawString(lpzjYearMonth.substring(4), 343, 257);
			//保存新图片
			ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
			ImageIO.write(bimg, "JPG",outputStream);	
			outputStream.flush();
	        
			byte[] byteArray = outputStream.toByteArray();
			getResponse().getOutputStream().write(byteArray);
		}catch(Exception e){
			//ignore
		}
		return null;
	}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值