当你提到二维码时,大多数人想到的是仓库管理或产品标签等 "工业 "应用,但这篇文章在很大程度上是关于二维码的个人和社会用途。
有趣的事实
二维(QR)码是在1994年发明的,最近几年由于新冠肺炎的出现,它的"非接触 "特性使其应用广泛。
二维码具备良好的解决方案。它可以被几乎所有的手机使用默认的照片应用程序扫描,同样,扫描它们也会根据它们的背景触发某种动作。
例如,一个含有URL的QR码允许你在浏览器中打开它。含有Wifi登录信息的二维码允许你立即连接。含有联系人详细信息的二维码允许您在地址簿中创建一个新的联系人。带有地理坐标的二维码允许你在地图上找到一个位置。这使扫描者的生活变得非常容易,并使信息提供者完全脱离…他们不再需要为了发生互动而在场。
开始
在开始之前,我做了一些研究,并选择了Python中的segno模块,因为它有全面的功能列表和漂亮的文档。在谷歌搜索Python中的QR码时,它并没有出现在最前面,甚至在模块名称中也没有 “QR”,但不要因此而放弃–它是一个很棒的工具。
让我们先用 .make()
方法创建一个最简单的QR码。它只包含可以复制或传输的原始数据,由于内容很短, segno
默认创建一个有趣的 "微型QR "码。
pip install segno
import segno
price_tag = segno.make("£9.99")price_tag.save("Price Tag.png")
你也可以使用方便的 .show
方法,而不是用 .save
来创建一个文件,然后导航到它,显示它,使用后再删除它。这将创建一个临时图像文件,并在你的默认图像查看器中自动打开。这对调试或测试很有帮助,特别是当你开始试验不同的颜色和背景图像,并想确认QR码仍能正常扫描时。
用于分享URL的QR码
使用同样的方法和稍大的有效载荷,我第一个任务(分享视频信息)的Python代码是微不足道的。
import segno
video = segno.make('https://youtu.be/px6FeOKD3Zc')video.save('Video.png', scale=4)
只需多写一行代码,我就能创建一个更加丰富多彩的QR码,在这种情况下,我最喜欢的一张图片实际上是一个用Piet编程语言编写的 "Hello World "脚本。
pip install qrcode-artistic
import segno
piet = segno.make('https://esolangs.org/wiki/Piet', error='h')piet.to_artistic(background="background.png", target='Piet.png', scale=16)
携带WIFI详细信息的QR码
我的第二个任务(WIFI登录细节)的Python代码也同样简单,但我定制了颜色并使输出更大。
import segno
wifi_settings = { ssid='(Wifi Name)', password='(Wifi Password)', security='WPA',}wifi = segno.helpers.make_wifi(**wifi_settings)wifi.save("Wifi.png", dark="yellow", light="#323524", scale=8)
联系信息的二维码
在这些快速成功的鼓励下,我决定为一个朋友的艺术和手工艺业务创建一个二维码。
import segno
vcard = segno.helpers.make_vcard( name='Pxxx;Jxxx', displayname='Times Tables Furniture', email=('jxxxpxxx@timestables.furniture'), url=[ 'https://www.etsy.com/uk/shop/TimesTablesFurniture', 'https://www.facebook.com/profile.php?id=100083448533180' ], phone="+44xxxxxxxxxx",)
img = vcard.to_pil(scale=6, dark="#FF7D92").rotate(45, expand=True)img.save('Etsy.png')
对于我自己的VCard,我选择添加我公司的标志作为背景。
import segno
awsom = segno.helpers.make_vcard( name='Fison;Pete', displayname='AWSOM Solutions Ltd.', email=('pxxxfxxx@awsom.solutions'), url=[ 'https://twitter.com/awsom_solutions', 'https://medium.com/@petefison', 'https://github.com/pfython' ], phone="+44xxxxxxxxxx",)
awsom.to_artistic( background="logo.png", target='AWSOM.png', scale=6, quiet_zone="#D29500")
用于其他目的的二维码
segno
API还允许你做以下事情。
segno.helpers.make_email
: 发送一封预先准备好主题和内容的电子邮件。对于订阅新闻简报,或者从邮件服务器上触发任何可能的行动,都是非常好的。
segno.helpers.make_epc_qr
: 发起一个电子支付。
segno.helpers.make_geo
: 在一个特定的经度和纬度打开默认的地图应用。
segno.make_sequence
: 使用 "结构化附加 "模式创建一个QR码序列。
把所有东西都保存在内存中
如果你喜欢把所有的处理保持在 “内存中”,而不是在硬盘或服务器上创建文件,你可以创建一个PIL图像对象,或者使用BytesIO保存一个类似文件的对象:
import segno
beatle = segno.make('Paul McCartney')beatle = qrcode.to_pil()
import segnoimport io
beatle = segno.make('Paul McCartney')buff = io.BytesIO()beatle.save(buff, kind='svg')
同样,如果你喜欢直接从URL中加载背景图片到内存中,而不是先在硬盘或服务器上创建一个文件,你可以使用urlopen方法。
from urllib.request import urlopenimport segno
beatle = segno.make('Ringo Starr', error='h')url = 'https://media.giphy.com/media/HNo1tVKdFaoco/giphy.gif'bg_file = urlopen(url)beatle.to_artistic(background=bg_file, target='ringo.gif', scale=10)
二维码的创造性、家用式的想法
希望这篇短文能让您对使用二维码有兴趣,不仅仅是用于 "工业 "项目,而且还用于个人和社会项目。网上有很多文章,建议将二维码创造性地用于商业和营销
学习资源推荐
除了上述分享,学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!
👉Python所有方向的学习路线👈
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)
👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python70个实战练手案例&源码👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉Python大厂面试资料👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉Python副业兼职路线&方法👈
学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。
👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以V扫描下方二维码联系领取
【保证100%免费
】
![](https://i-blog.csdnimg.cn/blog_migrate/c47342218cfef183268f0a9c63c1e1bb.jpeg)