JAVA如何实现二维码生成加背景图
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,小编给大家分享一下JAVA如何实现二维码生成加背景图,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!pom.xml依赖
千家信息网最后更新 2025年01月23日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安全错误
数据库的锁怎样保障安全
当前国家大力发展的网络技术
ctf网络安全大赛学费
房山区数据网络技术口碑推荐
数据库分店名字
软件开发工具包作用
龚子馨互联网科技有限公司
海口智游网络技术有限公司
软件开发报价非标
支持ip伪装的大流量服务器价格
怀旧服能在哪个服务器联机
南京软件开发求职
网络安全知识测试总结
网络安全法征文800
动态数据库流程图
自己搭建文件服务器
x86服务器 系统
网络技术管理人员
联想服务器的管理页面
我的世界服务器参数
redis 数据库延迟任务
英语下载软件开发
软件开发技术总监的职责和要求
惠普服务器维保
软件开发app的战略规划
人工智能与软件开发哪个好学
如何删除整个数据库
桓台财务软件开发价格
英雄联盟全球服务器连接一起
larval创建数据库
数据库安全性的不足之处