python生成二维码的实例详解
python生成二维码的实例详解
版本相关
操作系统:MacOSXEICaption
Python版本:2.7
IDE:SublimeText3
依赖库
Python生成二维码需要的依赖库为PIL和QRcode。
坑爹的是,百度了好久都没有找到PIL,不知道是什么时候改名了,还是其他原因,pillow就是传说中的PIL。
安装命令:sudopipinstallpillow、sudopipinstallqrcode
验证是否安装成功,使用命令fromPILimportImage,就可以验证PIL是否安装成功,qrcode则使用importqrcode,两条命令不报错,就说明依赖的环境已经完毕了。
使用qrcode
qrcode使用起来也很简单,代码如下:
importqrcode qr=qrcode.QRCode( version=7, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=4 ) qr.add_data("Hello") qr.make(fit=True) img=qr.make_image() img.save("test.png")
参数version表示生成二维码的尺寸大小,取值范围是1至40,最小尺寸1会生成21*21的二维码,version每增加1,生成的二维码就会添加4尺寸,例如version是2,则生成25*25的二维码。
参数error_correction指定二维码的容错系数,分别有以下4个系数:
1.ERROR_CORRECT_L:7%的字码可被容错
2.ERROR_CORRECT_M:15%的字码可被容错
3.ERROR_CORRECT_Q:25%的字码可被容错
4.ERROR_CORRECT_H:30%的字码可被容错
参数box_size表示二维码里每个格子的像素大小。
参数border表示边框的格子厚度是多少(默认是4)。
运行代码后,会在代码的当前目录下生成一个test.png的二维码,用手机扫一下就可以看到Hello了。
带有logo的二维码
生成这个二维码的原理就是利用PIL库操作icon,把icon放到二维码的正中间。PIL操作没有去了解,就直接使用毛票票的代码来做事例。
importImage importqrcode qr=qrcode.QRCode( version=2, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=10, border=1 ) qr.add_data("http://jb51.net/") qr.make(fit=True) img=qr.make_image() img=img.convert("RGBA") icon=Image.open("favicon.png") img_w,img_h=img.size factor=4 size_w=int(img_w/factor) size_h=int(img_h/factor) icon_w,icon_h=icon.size ificon_w>size_w: icon_w=size_w ificon_h>size_h: icon_h=size_h icon=icon.resize((icon_w,icon_h),Image.ANTIALIAS) w=int((img_w-icon_w)/2) h=int((img_h-icon_h)/2) img.paste(icon,(w,h),icon) img.save("dhqme_qrcode.png")
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!