golang中生成读取二维码(skip2/go-qrcode和boombuler/barcode,tuotoo/qrcode)
1 引言
在github上有好用golan二维码生成和读取库,两个生成二维码的qrcode库和一个读取qrcode库。
skip2/go-qrcode生成二维码,github地址:https://github.com/skip2/go-qrcode

boombuler/barcode生成二维码,github地址:https://github.com/boombuler/barcode

tuotoo/qrcode解析二维码,github地址:https://github.com/tuotoo/qrcode

2 代码
import (
"image/png"
"os"
"github.com/boombuler/barcode"
"github.com/boombuler/barcode/qr"
"github.com/skip2/go-qrcode"
qrcodeReader "github.com/tuotoo/qrcode"
"fmt"
) func main() { content := "https://www.cnblogs.com/fanbi"
size := 200 //Skip2
dest := "qrcode.png"
CreateQRCodeBySkip2(content, qrcode.Medium, size, dest)
fmt.Println("QRCodeBySkip2 content",ReadQRCode(dest)) //Boombuler
dest2 := "qrcode2.png"
CreateQRCodeByBoombuler(content, qr.M, size, dest2)
fmt.Println("QRCodeBySBoombule content",ReadQRCode(dest2)) //输出
//QRCodeBySkip2 content https://www.cnblogs.com/fanbi
//QRCodeBySBoombule content https://www.cnblogs.com/fanbi } func CreateQRCodeBySkip2(content string, quality qrcode.RecoveryLevel, size int, dest string) (err error) {
err = qrcode.WriteFile(content, quality, size, dest)
return
} func CreateQRCodeByBoombuler(content string, quality qr.ErrorCorrectionLevel, size int, dest string) (err error) {
qrCode, err := qr.Encode(content, quality, qr.Auto)
if err != nil {
return
} // Scale the barcode to 200x200 pixels
qrCode, err = barcode.Scale(qrCode, size, size)
if err != nil {
return
} // create the output file
file, err := os.Create(dest)
if err != nil {
return
} defer file.Close()
// encode the barcode as png
err = png.Encode(file, qrCode)
if err != nil {
return
} return
} func ReadQRCode(filename string) (content string) {
fi, err := os.Open(filename)
if err != nil {
fmt.Println(err.Error())
return
}
defer fi.Close()
qrmatrix, err := qrcodeReader.Decode(fi)
if err != nil {
fmt.Println(err.Error())
return
}
return qrmatrix.Content
}
效果图:
qrcode.png

qrcode2.png

说明:第二种生成的二维码会更好,图片的四周白边占比小。
3 参考
https://blog.csdn.net/wangshubo1989/article/details/77897363
golang中生成读取二维码(skip2/go-qrcode和boombuler/barcode,tuotoo/qrcode)的更多相关文章
- pbfunc外部函数扩展应用-直接在Datawindow中生成QR二维码,非图片方式
利用pbfunc外部函数在Datawindow中直接生成QR二维码,非图片方式.需要注意以下面几点: Datawindow的DataObject的单位必须为像素(Pixels). Datawindow ...
- laravel中生成支付宝 二维码 扫码支付
文档教程模拟: http://www.023xs.cn/Article/37/laravel5%E9%9B%86%E6%88%90%E6%94%AF%E4%BB%98%E5%AE%9Dalipay%E ...
- ZXing 生成、读取二维码(带logo)
前言 ZXing,一个支持在图像中解码和生成条形码(如二维码.PDF 417.EAN.UPC.Aztec.Data Matrix.Codabar)的库.ZXing(“zebra crossing”)是 ...
- Swift3.0生成二维码、扫描二维码、相册读取二维码,兼容iOS7(结合ZXingObjC)
二维码生成 //MARK: 传进去字符串,生成二维码图片(>=iOS7) text:要生成的二维码内容 WH:二维码高宽 private func creatQRCodeImage(text: ...
- 【java】google的zxing架包生成二维码和读取二维码【可带文字和logo】
承接RC4生成不重复字符串的需求之后,因为优惠码要方便用户使用的缘故,所以思来想去,觉得还是直接生成二维码给用户直接扫比较实用,也不用用户专门记录冗长的优惠码编号. ================= ...
- ZXing生成二维码、读取二维码
使用谷歌的开源包ZXing maven引入如下两个包即可 <dependency> <groupId>com.google.zxing</groupId> & ...
- jquery-qrcode 生成和读取二维码
首先要导入jar包(生成二维码的jar和读取二维码的jar) 生成二维码: package com.imooc.qrcode; import java.awt.Color; import java.a ...
- zxing生成二维码和读取二维码
当然,首先要导入zxing的jar包. 生成二维码代码: package com.imooc.zxing; import java.io.File; import java.nio.file.Path ...
- [AX2012 R3]在SSRS报表中使用QR二维码
AX2012是自带生成QR二维码的类,可以很方便的用在SSRS报表中,下面演示如何在RDP的报表中使用二维码,首先从定义临时表开始: 字段URL是要用于二维码的字符串,QrCode是container ...
随机推荐
- 【技术博客】JWT的认证机制Django项目中应用
开发组在开发过程中,都不可避免地遇到了一些困难或问题,但都最终想出办法克服了.我们认为这样的经验是有必要记录下来的,因此就有了[技术博客]. JWT的认证机制Django项目中应用 这篇技术博客基于软 ...
- JCR分区 | 中科院SCI期刊分区表
LetPub查询系统,非常方便,分区影响因子都可以查询,还有投稿经验可以参考. SCI全称是Science Citation Index(科学引文索引) 科睿唯安JCR分区(Journal Citat ...
- spring-boot 知识集锦
1.spring-boot项目在外部tomcat环境下部署 https://blog.csdn.net/james_wade63/article/details/51009423 https://bl ...
- vs开启,Windows 10磁盘占用100%解决办法
https://www.cnblogs.com/time-is-life/p/8888441.html 最后把Home Group相关的服务都改成禁用. 注意: 即使这两个服务没有启动也不行, 一定要 ...
- Python + Selenium 自动发布文章(一):开源中国
https://blog.csdn.net/qq_28804275/article/details/80891949 https://blog.csdn.net/qq_28804275/article ...
- ubuntu解决网络连接的优先级
ubuntu下无线连接网络,有线连接板卡,解决网络连接的优先级 1. 查看网关 ip route show dev wlp2s0 proto kernel scope link src dev wl ...
- VC 获取系统特殊文件夹的路径如:系统目录,桌面等
转载:https://blog.csdn.net/qq_23992597/article/details/50963343 如果需要,请在StdAfx.h中添加 #include <shlobj ...
- 路径规划: PRM 路径规划算法 (Probabilistic Roadmaps 随机路标图)
随机路标图-Probabilistic Roadmaps (路径规划算法) 路径规划作为机器人完成各种任务的基础,一直是研究的热点.研究人员提出了许多规划方法如: 1. A* 2. Djstar 3. ...
- maya2018 + VS2017 C++编译环境搭建
1. 下载: https://www.autodesk.com/developer-network/platform-technologies/maya 2. 解压,将devkitBase下的incl ...
- ufw防火墙规则不生效
正式站系统是Ubuntu 16.04.6 一.今天一个项目有百度爬出,在nginx中封掉还在一直爬取,都403还不停爬取 二.在uwf封掉爬出ip,想封掉80端口没有用,然后封掉整个网段还是没有用,尴 ...