文档章节

通过ZXing生成二维码简易教程Demo

Happy健
 Happy健
发布于 2017/07/24 16:32
字数 286
阅读 37
收藏 0

不废话,上代码:

1、导入zxing包,相信不必多说,我用的maven

    <!--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>

2、后台

特别说明一下,你也可以return 图片格式(无需多言,代码删减一下就OK了)需要过一下数据库,但是考虑到现在二维码都是实时的,图片不需要存,所以我们用base64编码的形式(return 字符串)。待会前台在显示,看下文。

    private String createImageByBase64(String url) {//url就是二维码解析后的路径
        Hashtable<EncodeHintType,Object> hints = new Hashtable<EncodeHintType, Object>();
        hints.put(EncodeHintType.CHARACTER_SET,"UTF-8");
	    hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);//容错率
        hints.put(EncodeHintType.MARGIN, 0); //白边
        ByteArrayOutputStream os = null;
        BufferedImage bufferedImage = null;
        byte b[] = null;
        String str = null;
        try {
            BitMatrix bitMatrix = new MultiFormatWriter().encode(url, BarcodeFormat.QR_CODE,200,200,hints);
            int width = bitMatrix.getWidth();
            int height = bitMatrix.getHeight();
            bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
            for (int x = 0; x < width; x++) {
                for (int y = 0; y < height; y++) {
                    bufferedImage.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF);//二维码部分颜色
                }
            }

            //把图片换成bit流
            os = new ByteArrayOutputStream();
            ImageIO.write(bufferedImage, "png", os);
            b = os.toByteArray();
            str = new BASE64Encoder().encode(b);
            return str;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

3、前台

<img src=“data:image/png;base64,str”/>

 

© 著作权归作者所有

共有 人打赏支持
Happy健
粉丝 0
博文 3
码字总数 738
作品 0
石家庄
程序员
私信 提问
Android平台利用ZXING生成二维码图片

zxing是google的一个开源二维码项目,目前基本上和二维码打交道的东西,都会用到它. 最近项目中用到了android手机需要根据提供的字符串生成二维码图片,之前用zxing做过二维码解码,编码还没做过...

xiahuawuyu
2012/04/25
0
0
zxing 如何识别反转二维码

说起二维码扫描,估计很多人用的是 zxing 吧。 然而 zxing 虽然好用,但是却有一些坑。 这边分析一下自己实际项目遇到的一个坑。 什么坑呢? 下面举个栗子你就懂了。 这边生成二维码使用的是...

AndroidTraveler
07/23
0
0
Java js 生成二维码 解析二维码

1.二维码分类   二维条码也有许多不同的码制,就码制的编码原理而言,通常分为三种类型。 线性堆叠式二维码 编码原理: 建立在一维条码基础之上,按需要堆积成两行或多行。 图示: 2. 矩阵...

haoyuehong
06/28
0
0
ZXing读写二维码,桌面和手机的不同用法

虽然ZXing是用Java实现的Barcode开源库,但是并不代表桌面上实现的Barcode应用在手机上也可以直接使用。因为Android的Java接口有很多是不同的。这里分享下Java Barcode生成和读取的不同用法。...

yushulx
2015/08/18
0
0
Android微信扫描二维码登入实现 基于ZXing开源工程

项目需求,做一个类似微信扫描二维码,网页端登陆的功能实现。 利用开源项目ZXing来实现。ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码。目标是能够对QR编码、Data Matrix、UPC的1...

jeffzhao
2013/02/02
0
7

没有更多内容

加载失败,请刷新页面

加载更多

小白带你认识netty(三)之NioEventLoop的线程(或者reactor线程)启动(一)

在第一章中,我们看关于NioEventLoopGroup的初始化,我们知道了NioEventLoopGroup对象中有一组EventLoop数组,并且数组中的每个EventLoop对象都对应一个线程FastThreadLocalThread,那么这个...

天空小小
今天
3
0
PHP动态扩展Redis模块

查看已有模块 [root@test-a ~]# /usr/local/php/bin/php -m[PHP Modules]bz2Core...zlib[Zend Modules] 下载包,解压,生成configure文件 [root@test-a ~]# cd /usr/local/src/[ro......

野雪球
今天
3
0
在Ignite中使用线性回归算法

在本系列前面的文章中,简单介绍了一下Ignite的机器学习网格,下面会趁热打铁,结合一些示例,深入介绍Ignite支持的一些机器学习算法。 如果要找合适的数据集,会发现可用的有很多,但是对于...

李玉珏
今天
5
0
Mybatis应用学习——简单使用示例

1. 传统JDBC程序中存在的问题 1. 一个简单的JDBC程序示例: public class JDBCDemo {public static void main(String[] args) {Connection con=null;PreparedStatement statemen...

江左煤郎
今天
4
0
使用JavaScript编写iOS应用业务逻辑

JSAUIKitCocoa使你可以使用JavaScript编写对性能要求不高但可能变动性很大的iOS应用的业务逻辑部分,View组件、需要多线程支持的Model等则直接使用原生对象。 编写方式与React Native相似,但...

neal01
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部