Java - 生成二维码图片
文章目录
- 生成二维码图片
- 参考
生成二维码图片
新建 Maven Project,引入依赖:
<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>
新建 QrCodeUtils
工具类:
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Path;
import java.util.HashMap;
import java.util.Map;import javax.imageio.ImageIO;import com.google.zxing.BarcodeFormat;
import com.google.zxing.Binarizer;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.DecodeHintType;
import com.google.zxing.EncodeHintType;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.NotFoundException;
import com.google.zxing.Result;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.QRCodeWriter;public class QrCodeUtils {private static final BarcodeFormat BARCODE_FORMAT = BarcodeFormat.QR_CODE;private static final QRCodeWriter qrCodeWriter = new QRCodeWriter();private static final MultiFormatReader multiFormatReader = new MultiFormatReader();public static BitMatrix encode(String contents, int width, int height, Map<EncodeHintType, Object> hints) throws WriterException {BitMatrix bitMatrix = qrCodeWriter.encode(contents, BARCODE_FORMAT, width, height, hints);return bitMatrix;}public static Result decode(File input) throws IOException, NotFoundException {BufferedImage bufferedImage = ImageIO.read(input);LuminanceSource luminanceSource = new BufferedImageLuminanceSource(bufferedImage);Binarizer binarizer = new HybridBinarizer(luminanceSource);BinaryBitmap binaryBitmap = new BinaryBitmap(binarizer);Map<DecodeHintType, Object> hints = new HashMap<DecodeHintType, Object>();hints.put(DecodeHintType.CHARACTER_SET, "UTF-8");return multiFormatReader.decode(binaryBitmap, hints);}public static void writeToPah(BitMatrix matrix, String format, File file) throws IOException {MatrixToImageWriter.writeToPath(matrix, format, file.toPath());}public static void writeToPah(BitMatrix matrix, String format, Path file) throws IOException {MatrixToImageWriter.writeToPath(matrix, format, file);}public static void writeToStream(BitMatrix matrix, String format, OutputStream stream) throws IOException {MatrixToImageWriter.writeToStream(matrix, format, stream);}
}
测试类:
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;import com.google.zxing.EncodeHintType;
import com.google.zxing.NotFoundException;
import com.google.zxing.Result;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;public class Test {public static void main(String[] args) throws WriterException, IOException, NotFoundException {File file = new File("二维码(QrCode).png");String contents = file.getName();Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);hints.put(EncodeHintType.MARGIN, 1);BitMatrix bitMatrix = QrCodeUtils.encode(contents, 800, 800, hints);QrCodeUtils.writeToPah(bitMatrix, "PNG", file); // 生成二维码图片// ByteArrayOutputStream stream = new ByteArrayOutputStream();
// QrCodeUtils.writeToStream(bitMatrix, "PNG", stream);
//
// byte[] byteArray = stream.toByteArray();Result result = QrCodeUtils.decode(file); // 识别二维码System.out.println(result.getText());}
}
生成的二维码图片位于项目根目录中:
控制台输出:
二维码(QrCode).png
参考
Java实现二维码生成 Google-Zxing
Java识别二维码【工具类】
Java - 生成二维码图片相关推荐
- 使用Java生成二维码图片(亲测)
下面我来分享两种生成二维码图片的方法. 第一种,填入你扫描二维码要跳转的网址直接生成二维码 第一步:导入相关的包 1 <dependency> 2 <groupId>com.g ...
- 使用Java生成二维码图片
下面我来分享两种生成二维码图片的方法. 第一种,填入你扫描二维码要跳转的网址直接生成二维码 第一步:导入相关的包 1 <dependency> 2 <groupId>com.g ...
- java生成二维码图片(有logo),并在图片下方附文字
logo配置类 /*** Created by Amber Wang on 2017/11/27 17:25.*/import java.awt.*;public class LogoConfig { ...
- java生成二维码图片、转base64
本文介绍通过java把文字或url生成二维码,使用浏览器或者微信扫一扫即可获得文字或url内容,超简单的方法,两个步骤复制粘贴即可使用. 注意:内容是文字会直接显示,如果内容为url地址那么会直接访问 ...
- springboot+java生成二维码图片
接下来将从IDEA创建springboot项目到生成效果图详细地为大家展示二维码的制作过程 1.首先是创建springboot项目 上面的图有红色标记的地方需要填写的,比如项目存放的路径,包名等,其他 ...
- JAVA 生成二维码图片 可加Logo
现在二维码在很多地方有运用,在这里写一份简洁明快的代码,方便以后使用.有需要的朋友可以直接复制过去 直接使用 所需要的jar:QRCode.jar jar下载地址:点击打开链接 package QrC ...
- Java生成二维码图片,手机软件扫码后跳转网页
一.创建maven工程,添加如下依赖 <dependencies><dependency><groupId>com.google.zxing</groupId ...
- java springboot生成二维码图片
java生成二维码图片 Maven依赖 <!--生成二维码--> <dependency><groupId>com.google.zxing</groupId ...
- Java生成二维码带LOGO底部标题竖版字体
前言 Java后端生成二维码 底部 侧面带有标题,可调节字号 参考文章 使用Java生成二维码图片(亲测) Reborn_YY使用Java生成二维码图片 图标素材库 Java后台生成图片,前台实现图片 ...
最新文章
- 一遍记住Java常用的八种排序算法与代码实现
- linux的共享端口,Gogs与Linux共享SSH22端口
- windows程序如何设计时间片_小程序开发要多久?制作设计小程序要多长时间?...
- Quartz.net官方开发指南 第五课: SimpleTrigger
- ubuntu 配置网络
- 傅奎:十年安全路,一颗好奇心
- 阿里云弹性高性能计算产品商业化正式发布
- 排队接水(信息学奥赛一本通-T1319)
- ZooKeeper(四) 使用Redis RedissonLock 实现分布式锁
- Spring4.x(9)--Spring的Hibernate事务-XML
- Linq原理相关(隐式类型var、匿名类型、实例化类、集合初始化)
- 软工作业PSP与单元测试训练 15100231
- JAD文件各属性解释
- 在Python中分词
- 《李宗仁回忆录》完整版在线及电子书下载
- 老宇哥带你玩转ESP32,12篇基础教程已经更新完毕,接下来是进阶教程
- C#简单使用ManagedWifi
- Android 设置APP桌面图标
- 世界人工智能大会倒计时30天,这些亮点不容错过
- 小程序之 一个方法中的值怎么传递到另一个方法中