现在二维码可以说已经普及到了我们生活的每一个角落,基本上我们的衣食住行都会看到二维码的身影。用于生成和解析二维码的Python库有:qrcode、myqr和zxing,可以通过pipinstallqrcode/myqr/zxing安装。生成二维码的Python库有:qrcode、myqr,下面通过例子来看看。1、方法一qrcode库可以生成一些比较简单的二维码。优点是速度快,占用空间小,容易在线生成。我们以扫描二维码跳转到某个地址为例。importqrcode#二维码内容(链接地址或文字)data='https://www.baidu.com/'#生成二维码img=qrcode.make(data=data)#显示二维码img.show()#保存二维码#img.save('qr.jpg')效果如下:我们可以看到上面是最基本的二维码,下面我们简单美化一下。importqrcode'''version:二维码点阵的大小,可以是1到40,1最小为21*21,40最小为177*177错误率box_size:个数ofpixelscontainedineachsmallgridoftheQRcodeborder:从二维码到图片边框的小格数,默认为4'''qr=qrcode.QRCode(version=2,error_correction=qrcode.constants.ERROR_CORRECT_L,box_size=15,border=3,)#二维码内容data='https://www.baidu.com/'qr.add_data(data=data)#启用二维码颜色设置qr.make(fit=True)img=qr.make_image(fill_color='blue',back_color='white')#显示二维码。img.show()的效果如下:2.方法二如果我们想生成更炫酷的二维码可以使用myqr库,但是它也有缺点,就是不适合在线使用。对于常见的样式,我们首先生成一个基本的二维码。fromMyQRimportmyqr'''words:contentversion:faulttolerancesave_name:save_name'''myqr.run(words='https://www.baidu.com/',version=1,save_name='myqr.png')效果如下:stylewithpicture我们再生成一个带图片的二维码。fromMyQRimportmyqr'''picture:用于生成二维码的图片colorized:False为黑白,True为彩色'''myqr.run(words='https://www.baidu.com/',version=1,picture='bg.jpg',colorized=True,save_name='pmyqr.png')效果如下:动态样式最后我们生成动态二维码。fromMyQRimportmyqrmyqr.run(words='https://www.baidu.com/',version=1,picture='my.gif',colored=True,save_name='myqr.gif')效果如下:Parsingzxing库用于解析二维码。让我们通过一个例子来看一下。importzxingreader=zxing.BarCodeReader()barcode=reader.decode('myqr.gif')print(barcode.parsed)如果我们需要美化现有的二维码,只需要下面两步。解析已有的二维码,得到解析后的内容使用解析后的内容生成新的二维码例如,以下面的二维码为例,我们对其进行解析,生成新的二维码。importzxingfromMyQRimportmyqrreader=zxing.BarCodeReader()barcode=reader.decode('gzh.jpg')myqr.run(words=str(barcode.parsed),version=1,picture='my.gif',colorized=True,save_name='gmyqr.gif')效果如下:这样我们会发现扫描原二维码和新生成的二维码效果是一样的。回复公众号Python小二后台二维码获取源码
