JAVA如何实现二维码生成加背景图
发表于:2024-10-01 作者:千家信息网编辑
千家信息网最后更新 2024年10月01日,小编给大家分享一下JAVA如何实现二维码生成加背景图,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!pom.xml依赖
千家信息网最后更新 2024年10月01日JAVA如何实现二维码生成加背景图
小编给大家分享一下JAVA如何实现二维码生成加背景图,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
pom.xml依赖
/** * 类名称:QRCodeMax * 类描述:生成二维码图片+背景+文字描述工具类 * 创建人:一个除了帅气,一无是处的男人 * 创建时间:2018年12月x日x点x分x秒 * 修改时间:2019年2月x日x点x分x秒 * 修改备注:更新有参数构造 * @version: 2.0 * */public class QRCodeMax { //文字显示 private static final int QRCOLOR = 0x201f1f; // 二维码颜色:黑色 private static final int BGWHITE = 0xFFFFFF; //二维码背景颜色:白色 // 设置QR二维码参数信息 private static Map com.google.zxing core 3.0.1 hints = new HashMap () { private static final long serialVersionUID = 1L; { put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);// 设置QR二维码的纠错级别(H为最高级别) put(EncodeHintType.CHARACTER_SET, "utf-8");// 设置编码方式 put(EncodeHintType.MARGIN, 0);// 白边 } }; /** * 生成二维码图片+背景+文字描述 * @param codeFile 生成图地址 * @param bgImgFile 背景图地址 * @param WIDTH 二维码宽度 * @param HEIGHT 二维码高度 * @param qrUrl 二维码识别地址 * @param note 文字描述1 * @param tui 文字描述2 * @param size 文字大小 * @param imagesX 二维码x轴方向 * @param imagesY 二维码y轴方向 * @param text1X 文字描述1x轴方向 * @param text1Y 文字描述1y轴方向 * @param text2X 文字描述2x轴方向 * @param text2Y 文字描述2y轴方向 */ public static void CreatQRCode( File codeFile, File bgImgFile,Integer WIDTH,Integer HEIGHT,String qrUrl, String note,String tui,Integer size,Integer imagesX,Integer imagesY,Integer text1X,Integer text1Y ,Integer text2X,Integer text2Y) { try { MultiFormatWriter multiFormatWriter = new MultiFormatWriter(); // 参数顺序分别为: 编码内容,编码类型,生成图片宽度,生成图片高度,设置参数 BitMatrix bm = multiFormatWriter.encode(qrUrl, BarcodeFormat.QR_CODE, WIDTH, HEIGHT, hints); BufferedImage image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB); // 开始利用二维码数据创建Bitmap图片,分别设为黑(0xFFFFFFFF) 白(0xFF000000)两色 for (int x = 0; x < WIDTH; x++) { for (int y = 0; y < HEIGHT; y++) { image.setRGB(x, y, bm.get(x, y) ? QRCOLOR : BGWHITE); } } /* * 添加背景图片 */ BufferedImage backgroundImage = ImageIO.read(bgImgFile); int bgWidth=backgroundImage.getWidth(); int qrWidth=image.getWidth(); //距离背景图片x边的距离,居中显示 int disx=(bgWidth-qrWidth)-imagesX; //距离y边距离 * * * * int disy=imagesY; Graphics2D rng=backgroundImage.createGraphics(); rng.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP)); rng.drawImage(image,disx,disy,WIDTH,HEIGHT,null); /* * 文字描述参数设置 */ Color textColor=Color.white; rng.setColor(textColor); rng.drawImage(backgroundImage,0,0,null); //设置字体类型和大小(BOLD加粗/ PLAIN平常) rng.setFont(new Font("微软雅黑,Arial",Font.BOLD,size)); //设置字体颜色 rng.setColor(Color.black); int strWidth=rng.getFontMetrics().stringWidth(note); //文字1显示位置 int disx1=(bgWidth-strWidth)-text1X;//左右 rng.drawString(note,disx1,text1Y);//上下 //文字2显示位置 int disx2=(bgWidth-strWidth)-text2X;//左右 rng.drawString(tui,disx2,text2Y);//上下 rng.dispose(); image=backgroundImage; image.flush(); ImageIO.write(image, "png", codeFile); } catch (Exception e) { e.printStackTrace(); } } /** * 测试 * @param args */ public static void main(String[] args) { File bgImgFile=new File("D://tu/bg.png");//背景图片 File QrCodeFile = new File("D://tu/myqrcode.png");//生成图片位置 String url = "https://blog.csdn.net/weixin_38407595";//二维码链接 String note = "" ;//文字描述 String tui = "" ;//文字描述 //宣传二维码生成 //生成图地址,背景图地址,二维码宽度,二维码高度,二维码识别地址,文字描述1,文字描述2,文字大小,图片x轴方向,图片y轴方向,文字1||2xy轴方向 CreatQRCode(QrCodeFile,bgImgFile, 148, 148, url, note,tui, 38, 408, 123, 0, 0, 410, 210); }}
以上是"JAVA如何实现二维码生成加背景图"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
二维
二维码
文字
图片
背景
生成
方向
地址
参数
位置
内容
大小
宽度
篇文章
编码
背景图片
颜色
高度
上下
字体
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
操作sql数据库
沈阳软件开发驻场流程
数据库技术与应用参考答案
云服务器租用商怎么选
淘宝软件开发论文
数据库 etl 技术
软件开发评估机构
父亲节日记软件开发
胡润中国网络安全企业百强公布
软件开发技术管理系统研发
网络安全监督岗思想报告
软件开发师工资待遇
皇室战争服务器在哪儿
福州安卓客户管理软件开发
华为软件开发云使用
服务器上有的硬盘绿灯常亮
网络技术管理好不好
可靠的网络安全运维怎么样
早数据库
ocm数据库搭建教程
郑州中学生网络安全挑战赛
什么是弹性云服务器
数据库表保存找不到了
软件开发项目管理问题
oracle连数据库
网络安全英语作文博文
卓易通网络技术有限公司
数据库当前日期获取
关于网络安全的黑板报 优秀
邢台双十一网络安全吗