Java利用zxing生成二维码

在如今的生活中,二维码随处可见,二维码的出现既减少了宣传纸张的浪费,又方便了人们的生活。这一篇我来说说 Java 利用第三方 Jar 包 zxing 生成二维码。

1、下载zxing相关Jar包并引入工程中

若是maven工程,则在pom.xml中引入如下dependency即可,若不是maven工程,则可自行百度”zxing Jar“下载。

<!-- https://mvnrepository.com/artifact/com.google.zxing/core -->
<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>core</artifactId>
    <version>3.3.0</version>
</dependency>

2、生成二维码主要有两种,一种是最普通的黑白二维码,另一种是中间带logo的彩色二维码,下面来一一介绍。

1)普通二维码

Java利用zxing生成二维码

这种二维码的实现原理比较简单,就是根据二维码的高度和宽度,再根据zxing中的算法,拆分成一个一个的像素点,用黑白两色来填充即可。

/** * 生成二维码图片文件(不带LOGO) * * @param content 要生成二维码的内容 * @param width 二维码的高度 * @param height 二维码的宽度 * @return 二维码图片 * @throws WriterException 异常 */ private static BufferedImage genQrcode(String content, int width, int height) throws WriterException { Map<EncodeHintType, String> hints = new HashMap<>(); hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); //根据高度和宽度生成像素矩阵 BitMatrix bitMatrix = multiWriter.encode(content, BarcodeFormat.QR_CODE, width, height, hints); BufferedImage image = new BufferedImage(bitMatrix.getWidth(), bitMatrix.getHeight(), BufferedImage.TYPE_INT_RGB); for (int x = 0; x < bitMatrix.getWidth(); x++) { for (int y = 0; y < bitMatrix.getHeight(); y++) { //填充黑白两色 image.setRGB(x, y, bitMatrix.get(x, y) ? BLACK : WHITE); } } return image; }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zggxjp.html