现在有很多二维码的生成工具,在线的,或者安装的软件,都可以进行生成二维码。今天我用Python的qrcode库生成二维码。需要预先安装  Image 库

安装

用pip安装

  1. # pip install Image
  1. pip install qrcode

使用源码安装

  1. git clone git@github.com:lincolnloop/python-qrcode.git
  2. cd python-qrcode
  3. python setup.py install

查看安装信息

  1. pip show qrcode

命令行

qrcode提供了生成二维码的命令,这个很符合程序员装逼的风格。

  1. qr 'Some data' > test.png

我上传的二维码就是用这个命令生成的

 
我的二维码

代码生成

首先需要导入qrcode模块,然后调用make方法,会生成一个图片对象,调用图片对象
的save方法就可以将生成的二维码保存下来了。

  1. import qrcode
  2. img = qrcode.make("扫一扫需要展示的信息")
  3. img.save("xinxing.png")

更多的设置

上面两种方式都是按照qrcode默认的方式生成二维码,如果我们希望生成不同尺寸的二维码就需要使用QRCode类了。

  1. import qrcode
  2. qr = qrcode.QRCode(
  3. version=1,
  4. error_correction=qrcode.constants.ERROR_CORRECT_L,
  5. box_size=10,
  6. border=4,
  7. )
  8. qr.add_data('扫一扫需要展示的信息')
  9. qr.make(fit=True)
  10.  
  11. img = qr.make_image()
  12. img.save('xinxingzhao.png')

version 表示二维码的版本号,二维码总共有1到40个版本,最小的版本号是1,对应的尺寸是21×21,每增加一个版本会增加4个尺寸。这里说的尺寸不是只生成图片的大小,而是值二维码的长宽被平均分为多少份。

error_correction指的是纠错容量,这就是为什么二维码上面放一个小图标也能扫出来,纠错容量有四个级别,分别是

  • ERROR_CORRECT_L L级别,7%或更少的错误能修正

  • ERROR_CORRECT_M M级别,15%或更少的错误能修正,也是qrcode的默认级别

  • ERROR_CORRECT_Q Q级别,25%或更少的错误能修正

  • ERROR_CORRECT_H H级别,30%或更少的错误能修正

box_size 指的是生成图片的像素

border 表示二维码的边框宽度,4是最小值

生成其他类型的二维码

我们可以将二维码转化为SVG(矢量图),命令行的方式:

  1. qr --factory=svg-path "xinxingzhao" > xinxingzhao.svg
  2. qr --factory=svg "xinxingzhao" > xinxingzhao.svg
  3. qr --factory=svg-fragment "xinxingzhao" > xinxingzhao.svg

使用python代码的方式:

  1. import qrcode
  2. import qrcode.image.svg
  3.  
  4. if method == 'basic':
  5. # Simple factory, just a set of rects.
  6. factory = qrcode.image.svg.SvgImage
  7. elif method == 'fragment':
  8. # Fragment factory (also just a set of rects)
  9. factory = qrcode.image.svg.SvgFragmentImage
  10. else:
  11. # Combined path factory, fixes white space that may occur when zooming
  12. factory = qrcode.image.svg.SvgPathImage
  13.  
  14. img = qrcode.make('xinxingzhao', image_factory=factory)

使用Python的库qrcode生成二维码的更多相关文章

  1. 使用jquery.qrcode生成二维码及常见问题解决方案

    转载文章  使用jquery.qrcode生成二维码及常见问题解决方案 一.jquery.qrcode.js介 jquery.qrcode.js 是一个纯浏览器 生成 QRcode 的 jQuery ...

  2. C#Qrcode生成二维码支持中文,带图片,带文字

    C#Qrcode生成二维码支持中文带图片的操作请看二楼的帖子,当然开始需要下载一下C#Qrcode的源码 下载地址 : http://www.codeproject.com/Articles/2057 ...

  3. C# 利用QRCode生成二维码图片

    网上生成二维码的组件是真多,可是真正好用的,并且生成速度很快的没几个,QRCode就是我在众多中找到的,它的生成速度快.但是网上关于它的使用说明,真的太少了,大都是千篇一律的复制粘贴.这是本要用它做了 ...

  4. Qrcode生成二维码的参数总结 及最小尺寸的测试

    Qrcode生成二维码,做过很多实验,探索最小规格的二维码到底是多少尺寸,和最高规格的二维码到底是多大尺寸.现在我总结总结: 有两种思路: 1.生成规格高的二维码,然后压缩到自己想要的尺寸的二维码.这 ...

  5. qrcode 生成二维码

    qrcode 生成二维码 Demo: https://www.hgnulb.cn/freedom/qrcode/qrcode.html qrcodeGithub 地址: https://github. ...

  6. python_使用qrcode生成二维码

    1.功能 使用qrcode生成二维码 2.代码 #生成二维码: import qrcode #根据url生成二维码 def qrcodeWithUrl(url): img = qrcode.make( ...

  7. 使用jquery.qrcode生成二维码实现微信分享功能

    前言: 最近有个这样的需求,在pc端的商品详情页增加分享功能. 微博分享.QQ好友分享.QQ空间分享这些都很常见.但是微信分享我还没有手动写过(以前改过). 最终效果如下图: 解决方案:使用jquer ...

  8. QRCode生成二维码,jq QRCode生成二维码,QRCode生成电子名片

    [QRCode官网]http://phpqrcode.sourceforge.net/ PHP QRCode生成二维码 官网下载QRCode源码包,引入源码包中的 qrlib.php . <?p ...

  9. 使用jquery.qrcode生成二维码(转)

    jQuery 的 qrcode 插件就可以在浏览器端生成二维码图片. 这个插件的使用非常简单: 1.首先在页面中加入jquery库文件和qrcode插件. <script type=" ...

随机推荐

  1. jQuery (02) 重点知识点总结

    jQuery 如果用户未登录,当加入购物车,会将商品相关信息存入 cookie 或者 session,这两个都是可以标识用户信息的东西 是一个 JavaScript 库,封装了常用的开发功能,和一些需 ...

  2. python语法_列表list_列表内置方法

    list 列表 a = ['kevin','alxe','gm','dql','gyx'] a[1] = 'alxe' #按照索引获取数据,索引按照0开始,第一个数据的索引为0 切片: a[1:3] ...

  3. yum安装mysql5.7

    [root@ycj ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm //下载安装 ...

  4. PL-SVO公式推导及代码解析:位姿优化

    通过跳过极线约束单独优化图像中每个特征的位置后,必须通过最小化3D特征与图像中相应的2D特征位置之间的重投影误差来进一步细化(3)中获得的相机姿态( 见图5).为此,我们考虑在世界坐标系中3D特征和相 ...

  5. Jquery获取输入框属性file,ajax传输后端,下载图片

    Django web开发获取input属性file,可以用request.FILES.get(' ')直接获取到,然后正常拼接路径就可以下载, 但是今天我们来用异步获取file的值在传输后端下载. 1 ...

  6. 通过使用Web Workers,Web应用程序可以在独立于主线程的后台线程中,运行一个脚本操作。这样做的好处是可以在独立线程中执行费时的处理任务,从而允许主线程(通常是UI线程)不会因此被阻塞/放慢。

    Web Workers API - Web API 接口参考 | MDNhttps://developer.mozilla.org/zh-CN/docs/Web/API/Web_Workers_API ...

  7. JAVA RPC (六) 之thrift反序列化RPC消息体

    我们来看一下服务端的简单实现,直接上thrift代码,很直观的来看一看thrift的server到底干了些什么 public boolean process(TProtocol in, TProtoc ...

  8. Enterprise Architect

    Enterprise Architect 是一款计算机辅助软件工程,这款软件用于设计和构建软件系统.业务流程建模及更多通用的建模.EA不同于普通的UML画图工具(如VISIO),它将支撑系统开发的全过 ...

  9. Delphi 2010 新增功能之: IOUtils 单元(6): TPath(结构体) 的方法与属性

    以后路径相关的处理, 用 IOUtils.TPath 就很方便了. //较常用的方法: TPath.GetTempPath;                  {获取临时文件夹路径} TPath.Ge ...

  10. asp.net中的CheckBox控件的使用

    CheckBox控件中的最重要属性就是checked属性了 下面就是使用checked属性的一个小应用; 先建立一个wed窗体:在窗体中写下这些代码: <%@ Page Language=&qu ...