python生成二维码的实例详解
版本相关
操作系统:Mac OS X EI Caption
Python版本:2.7
IDE:Sublime Text 3
依赖库
Python生成二维码需要的依赖库为PIL和QRcode。
坑爹的是,百度了好久都没有找到PIL,不知道是什么时候改名了,还是其他原因,pillow就是传说中的PIL。
安装命令:sudo pip install pillow、sudo pip install qrcode
验证是否安装成功,使用命令from PIL import Image,就可以验证PIL是否安装成功,qrcode则使用import qrcode,两条命令不报错,就说明依赖的环境已经完毕了。
使用qrcode
qrcode使用起来也很简单,代码如下:
import qrcode 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操作没有去了解,就直接使用的代码来做事例。
import Image import qrcode 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 if icon_w > size_w: icon_w = size_w if icon_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")
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。