首页 > python一键生成二维码/条形码并保存成图片

百度条码在线生成器,python一键生成二维码/条形码并保存成图片

互联网 2021-02-26 17:32:13

QRCode是生成二维码的库,采用里德-所罗门码来进行编码,里德-所罗门码是一种带有容错机制的编码方法,采用这种机制扫描的时候并不需要读取所有的比特位,因此也使得简单的在QRcode中少量的更改信息,比如加入小型的图片等。

image是图片处理库,依赖于django、olefile、pillow

安装qrcode

pip install qrcode

查看命令行

命令行中使用命令qr https://www.baidu.com

看得不是很清晰,于是我们把它保存成图片

安装image库,pip install image,安装成功

再次执行 qr https://www.baidu.com > baidu.png

生成图片baidu.png,打开微信扫一扫,发现跳转到百度网页

脚本实现

 

# coding:utf8import qrcodefrom PIL import Imageurl = "https://www.github.com"address = "D://github.png"img = qrcode.make(url)img.show()

 

高级用法

 

# coding:utf8import qrcodefrom PIL import Imageurl = "https://www.github.com"address = "D://github.png"qr = qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_L,box_size=8,border=8,)qr.add_data(url)qr.make(fit=True)img = qr.make_image()img.show()

生成二维码的步骤:  1. 创建QRCode对象  2. add_data()添加数据  3. make_image()创建二维码(返回img类型的图片对象)  4. 自动打开图片,img.show()

注:实际上make函数也是通过实例化一个QRCode对象来生成二维码的。调用make的时候也可以传入初始化参数

关于QRCode类参数介绍

QRCode类参数有四个参数:version、err_correction、box_size、border version:参数是(1-40)的整数,该参数用来控制二维码的尺寸(最小,version=1,该version的尺寸是21*21)。把version设置为None且使用fit参数会自动生成二维码。 err_correction:参数控制生成二维的误差。qrcode包中有四个可用的常量: ERROR_CORRECT_L:该常量表示误差率低于7%(包含7%) ERROR_CORRECT_M(默认值):该常量表示误差率低于15%(包含15%) ERROR_CORRECT_Q:该常量表示误差率低于25%(包含25%) ERROR_CORRECT_H:该常量表示误差率低于30%(包含30%) box_size:参数用来控制二维码的每个单元(box)格有多少像素点 border: 参数用控制每条边有多少个单元格(默认值是4,这是规格的最小值)

二、尝试使用pyBarcode库实现条形码的生成

https://pypi.org/project/pyBarcode/0.7/ 安装 pip install pyBarcode==0.7

如果没有权限只能下载安装包了,解压后,执行 python setup.py install

from barcode.writer import ImageWriterfrom barcode.ean import EuropeanArticleNumber13from barcode import get_barcode_classfrom random import randintdef randomNums(n):"生成随机n位的条形码数"barCode_num = ''for i in range(n):barCode_num += str(randint(0,9))def generateBarcode():"generate bar code by ean13 style which dfault format is png"# method1barcode_nums = randomNums(10)barcode_ean13 = EuropeanArticleNumber13(barcode_nums, writer=ImageWriter())barcode_ean13.save("./barCode/image")# method2 equalEAN = get_barcode_class("ean13")ean = EAN(barcode_nums, writer=ImageWriter())ean.save("./barCode/image1")

生成图片如下

缺点是:没有开启和终止符(随机生成的字符串不知道是否符合国际标准)

EAN-13通用商品条形码一般由前缀部分、制造厂商代码、商品代码和校验码组成。商品条形码中的前缀码是用来标识国家或地区的代码,赋码权在国际物品编码协会,如00-09代表美国、加拿大。45-49代表日本。690-695代表中国大陆,471代表中国台湾地区,489代表香港特区。制造厂商代码的赋权在各个国家或地区的物品编码组织,中国由国家物品编码中心赋予制造厂商代码。商品代码是用来标识商品的代码,赋码权由产品生产企业自己行使。商品条形码最后用1位校验码来校验商品条形码中左起第l-12数字代码的正确性。

 

免责声明:非本网注明原创的信息,皆为程序自动获取自互联网,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责;如此页面有侵犯到您的权益,请给站长发送邮件,并提供相关证明(版权证明、身份证正反面、侵权链接),站长将在收到邮件24小时内删除。