ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java生成图片

2021-11-26 22:34:34  阅读:149  来源: 互联网

标签:横线 java String drawLine 生成 账单 drawString g2 图片


在这里插入图片描述

public class Demo01 {
 
	public static void main(String[] args) throws FileNotFoundException, IOException {
 
		int width = 820; // 图片宽
		int height = 600;// 图片高
		String titleStr = "公司测试点";
		String zhangdanzhouqiStr = "2019年2月1日至2019年2月28日"; // 账单周期
		String zhangdantianshuStr = "85天"; // 账单天数
		String bengedinggonglvStr = "1000KW";// 泵额定功率
		String bengbianpingjienengyunxingyongdianliangStr = "100度"; // 泵变频节能运行用电量
		String dianjiaStr = "100元/度"; // 电价
		String pingjunjienenglvStr = "50%";// 平均节能率
		String daizhifujingeStr = "1000元"; // 待支付金额
		String bengyunxingzongshichangStr = "200小时"; // 泵运行总时长
		String benggongping运行yongdianliangStr = "99度"; // 泵工频运行用电量
		String jieshengdianliangStr = "100度"; // 节省电量
		String jieshengjineStr = "1000元"; // 节省金额
 
		// 得到图片缓冲区
		BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);// INT精确度达到一定,RGB三原色,高度70,宽度150
 
		// 得到它的绘制环境(这张图片的笔)
		Graphics2D g2 = (Graphics2D) bi.getGraphics();
		g2.setColor(Color.WHITE); // 设置背景颜色
		g2.fillRect(0, 0, width, height);// 填充整张图片(其实就是设置背景颜色)
		g2.setColor(Color.black);// 设置字体颜色
		g2.setStroke(new BasicStroke(2.0f)); // 边框加粗
		g2.drawRect(1, 1, width - 2, height - 2); // 画边框就是黑边框
 
		g2.drawLine(0, 80, 820, 80); // 从上到下第二个横线(标题下面横线)
		g2.setStroke(new BasicStroke(0.0f)); // 边框不需要加粗
		g2.drawLine(0, 154, 820, 154); // 从上到下第三个横线(账单周期下面横线)
		g2.drawLine(0, 228, 820, 228); // 从上到下第四个横线(账单天数下面横线)
		g2.drawLine(0, 302, 820, 302); // 从上到下第5个横线(泵额定功率下面横线)
		g2.drawLine(0, 376, 820, 376); // 从上到下第6个横线(泵变频节能运行用电量下面横线)
		g2.drawLine(0, 451, 820, 451); // 从上到下第7个横线(电价下面横线)
		g2.drawLine(0, 525, 820, 525); // 从上到下第8个横线(平均节能率下面横线)
 
		g2.drawLine(180, 80, 180, 600); // 从左到右第二个竖线
		g2.drawLine(390, 154, 390, 451); // 从左到右第三个竖线
		g2.drawLine(574, 154, 574, 451); // 从左到右第四个竖线
 
		// 设置标题的字体,字号,大小
		Font titleFont = new Font("宋体", Font.BOLD, 30);
		g2.setFont(titleFont);
		String markNameStr = titleStr;
		g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); // 抗锯齿
		// 计算文字长度,计算居中的X点坐标
		FontMetrics fm = g2.getFontMetrics(titleFont);
		int titleWidth = fm.stringWidth(markNameStr);
		int titleWidthX = (width - titleWidth) / 2 - 35;// 感觉不居中,向左移动35个单位
		g2.drawString(markNameStr + "节能账单", titleWidthX, 45);
 
		// 账单周期
		g2.setFont(new Font("宋体", Font.BOLD, 20));
		g2.drawString("账单周期", 33, 125);
		// 账单周期的值
		g2.drawString(zhangdanzhouqiStr, 230, 125);
 
		// 账单天数
		g2.drawString("账单天数", 33, 200);
		// 账单天数的值
		g2.drawString(zhangdantianshuStr, 230, 200);
 
		// 泵额定功率
		g2.drawString("泵额定功率", 33, 274);
		// 泵额定功率
		g2.drawString(bengedinggonglvStr, 230, 274);
 
		// 泵变频节能运行用电量
		g2.drawString("泵变频节能运", 33, 338);
		g2.drawString("行用电量", 33, 360);
		// // 泵变频节能运行用电量的值
		g2.drawString(bengbianpingjienengyunxingyongdianliangStr, 230, 345);
 
		// 电价
		g2.drawString("电价", 33, 423);
		// 电价的值
		g2.drawString(dianjiaStr, 230, 423);
 
		// 平均节能率
		g2.drawString("平均节能率", 33, 496);
		// 平均节能率
		g2.drawString(pingjunjienenglvStr, 230, 496);
 
		// 待支付金额
		g2.drawString("待支付金额", 33, 568);
		// 待支付金额的值
		g2.drawString(daizhifujingeStr, 230, 568);
 
		// 泵运行总时长
		g2.drawString("泵运行总时长", 420, 200);
		// 泵运行总时长的值
		g2.drawString(bengyunxingzongshichangStr, 630, 200);
 
		// 泵工频运行用电量
		g2.drawString("泵工频运行用", 420, 265);
		g2.drawString("电量", 420, 287);
		// 泵工频运行用电量的值
		g2.drawString(benggongping运行yongdianliangStr, 630, 274);
 
		// 节省电量
		g2.drawString("节省电量", 420, 348);
		// 节省电量的值
		g2.drawString(jieshengdianliangStr, 630, 345);
 
		// 节省金额
		g2.drawString("节省金额", 420, 423);
		// 节省金额的值
		g2.drawString(jieshengjineStr, 630, 423);
 
		g2.dispose(); // 释放对象
		ImageIO.write(bi, "JPEG", new FileOutputStream("D:/a.jpg"));// 保存图片 JPEG表示保存格式
	}

在这里插入图片描述

标签:横线,java,String,drawLine,生成,账单,drawString,g2,图片
来源: https://blog.csdn.net/qq_40711092/article/details/121569873

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有