电子商务网站建设工具,wordpress 页面编辑失败,长沙专业网站设计公司,网页设计与制作背景图片Hi I’m Shendi Java简单的生成/解析二维码#xff08;zxing qrcode#xff09;
在之前使用 qrcode.js 方式生成二维码#xff0c;但在不同设备上难免会有一些兼容问题#xff0c;于是改为后端#xff08;Java#xff09;生成二维码图片 这里使用 Google 的 zxing包 Jar…Hi I’m Shendi Java简单的生成/解析二维码zxing qrcode
在之前使用 qrcode.js 方式生成二维码但在不同设备上难免会有一些兼容问题于是改为后端Java生成二维码图片 这里使用 Google 的 zxing包 Jar包引入 Githubhttps://github.com/zxing/zxing 通过 Maven 引入
dependencygroupIdcom.google.zxing/groupIdartifactIdcore/artifactIdversion3.5.1/version
/dependency
dependencygroupIdcom.google.zxing/groupIdartifactIdjavase/artifactIdversion3.5.1/version
/dependency也可以直接在 maven 仓库中下载 jarjavase和core两个
例如阿里云maven仓库
https://developer.aliyun.com/mvn/search 或者微信搜一搜 “砷碲的学识仓库”发送 “100001” 直接下载jar包 生成二维码
简单的三步就可以生成二维码
创建QRCodeWriter创建二维码输出二维码 例如将二维码输出到 H:/1.png代码如下
import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Path;import com.google.zxing.BarcodeFormat;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;/** author Shendi */
public class Test {public static void main(String[] args) throws Exception {QRCodeWriter qcWrite new QRCodeWriter();// encode函数的四个参数分别是 内容,格式,宽,高BitMatrix bm qcWrite.encode(https://sdpro.top, BarcodeFormat.QR_CODE, 500, 500);// 输出到 H:/1.png, writeToPath有三个参数,(BitMatrix,格式,输出地址)MatrixToImageWriter.writeToPath(bm, PNG, Path.of(H:/1.png));}}代码运行后效果如下 如果要将二维码变成字节数组可以使用MatrixToImageWriter的writeToStream输出到流 二维码接口
例如传递一个字符串将此字符串变为二维码的形式输出http这里使用SpringBoot的形式写的接口供直接复制使用代码如下
/*** 生成二维码.* param content 二维码内容* param req 请求* param resp 响应*/
GetMapping(/code)
public void create(String content, HttpServletRequest req, HttpServletResponse resp) {QRCodeWriter qcWrite new QRCodeWriter();try {BitMatrix bm qcWrite.encode(content, BarcodeFormat.QR_CODE, 500, 500);// 设置响应为图片数据resp.setContentType(image/png);MatrixToImageWriter.writeToStream(bm, PNG, resp.getOutputStream());} catch (Exception e) {e.printStackTrace();}}解析二维码
通过 QRCodeReader 解析二维码例如解析刚刚生成的二维码代码如下
import java.awt.image.BufferedImage;
import java.io.File;import javax.imageio.ImageIO;import com.google.zxing.BinaryBitmap;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.QRCodeReader;/** author Shendi */
public class Test {public static void main(String[] args) throws Exception {QRCodeReader qcReader new QRCodeReader();// 这里的ImageIO也可以read输入流BufferedImage img ImageIO.read(new File(H:/1.png));BinaryBitmap bitmap new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(img)));Result result qcReader.decode(bitmap);System.out.println(二维码内容: result.getText());}}运行效果如下 END