QrCode zxing 二维码生成
需要用到的依赖
<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.0</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.3.0</version> </dependency>
示例代码
package com.huo.controller; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Hashtable; import javax.imageio.ImageIO; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter; import com.google.zxing.WriterException; import com.google.zxing.common.BitMatrix; /** * 需求说明:卖家在一个实体产品上贴一个二维码,买家收货后,微信扫码获取产品的详细信息 * 实现说明:卖家在出货前,把服务器上的产品详情页的链接地址(含有ID)生成二维码,买家收货后微信扫码,跳转到产品信息页即可查看 * 需要jar:zxing-code-2.3.jar,下载地址http://download.csdn.net/download/sanfye/8704583 * * @author 加内特 */ public class GenerateCode { private static final int BLACK = 0xFF000000; private static final int WHITE = 0xFFFFFFFF; public static void main(String[] args) { try { boolean flag = generateCode("518"); if (flag) { System.out.println("成功生成二维码"); } } catch (WriterException | IOException e) { System.err.println("生成二维码失败"); e.printStackTrace(); } } public static boolean generateCode(String productId) throws WriterException, IOException { // 这里是URL,扫描之后就跳转到这个界面 String text = "https://www.baidu.com/?uudi=" + productId; // String path = "E:/"; // 图片生成的位置 String path = "E:/huoziqi/java/ideaproject/sso-demo/sso-server/src/main/java/com/demo/controller"; // 图片生成的位置 int width = 400; int height = 400; // 二维码图片格式 String format = "jpg"; // 设置编码,防止中文乱码 Hashtable<EncodeHintType, Object> ht = new Hashtable<EncodeHintType, Object>(); ht.put(EncodeHintType.CHARACTER_SET, "UTF-8"); // 设置二维码参数(编码内容,编码类型,图片宽度,图片高度,格式) BitMatrix bitMatrix = new MultiFormatWriter() .encode(text, BarcodeFormat.QR_CODE, width, height, ht); // 生成二维码(定义二维码输出服务器路径) File outputFile = new File(path); if (!outputFile.exists()) { // 创建文件夹 outputFile.mkdir(); } int b_width = bitMatrix.getWidth(); int b_height = bitMatrix.getHeight(); // 建立图像缓冲器 BufferedImage image = new BufferedImage(b_width, b_height, BufferedImage.TYPE_3BYTE_BGR); for (int x = 0; x < b_width; x++) { for (int y = 0; y < b_height; y++) { image.setRGB(x, y, bitMatrix.get(x, y) ? BLACK : WHITE); } } // 生成二维码 ImageIO.write(image, format, new File(path + "/code." + format)); // 二维码的名称 // code.jpg return true; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!