前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这二维码鬼畜起来了,加颜色加插画还能加GIF

这二维码鬼畜起来了,加颜色加插画还能加GIF

作者头像
量子位
发布2021-12-10 20:45:09
1.3K0
发布2021-12-10 20:45:09
举报
文章被收录于专栏:量子位量子位
行早 发自 凹非寺 量子位 报道 | 公众号 QbitAI

你有没有见过彩色的,会动的二维码?比游戏还刺激的那种(狗头):

或者是保熟的二维码(不熟我把它吃了):

还有这个,当年要是被王司徒扫到了,肯定等不及在两军阵前发表高论就气倒了:

这些二维码虽然鬼畜了起来,但是并不影响它作为二维码的原始功能,不信可以试试,照样能扫出来~

这是一位名叫Lars heuer的小哥制作的一款二维码编辑器Segno,让黑白的二维码世界亮了起来,在GitHub上收获了200多颗星:

这款编辑器可以把二维码的背景换成不同的颜色,图片甚至是gif图片:

并且全部程序不需要任何依赖项,并且支持多种格式,快来康康。

如何给二维码换装?

要想给二维码换装首先我们得准备一个二维码还有一件“衣服”。

其中二维码可以通过函数生成,只需要填上你希望扫描二维码之后显示出的文字或者网址之类的信息。

“衣服”就是背景图啦,多种格式的图片和鬼畜动图都可以。

具体到操作层面应该怎么做呢?

Lars heuer准备了两个库:qrcode-artistic和Pillow。

我们先把这两个库装上:

代码语言:javascript
复制
pip install qrcode-artistic
代码语言:javascript
复制
pip install Pillow

然后用segno.make()生成一个二维码,在函数中填上扫描二维码显示出的内容。

有了生成函数之后,在转化函数qrcode.to_artistic,background之后输入你想要替换的背景,可以输入.png,.jpg,.gif等格式的图片。

最后在target之后给输出的二维码命名,方便在文件夹中找到。

代码语言:javascript
复制
>>> import segno
>>> qrcode = segno.make('1', error='h')
>>> qrcode.to_artistic(background='2', target='3',
...                    scale=8)

等运行完毕,你就能在项目文件中找到带有各种背景的二维码了~

什么原理?

其实道理也很简单。

二维码能修改部分背景是因为二维码中不同的区域,承担不同的功能,并且可以自定义颜色。

例如很明显的一点,常见的二维码在三个角上有较大的像素块(标红),用来定位:

在三个大像素块旁边的黑色像素块(标红)用来设置格式信息:

而左下和右上两个大像素块旁边的黑色像素块(标红)用来确定版本信息等等:

因此,当我们自定义这些区域的颜色时,就可以改变二维码的背景了。

大开脑洞来试试吧,更细节的信息可以在文末链接中找到~

参考链接:

[1]https://github.com/heuer/segno [2]https://segno.readthedocs.io/en/stable/colorful-qrcodes.html

本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子位 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何给二维码换装?
  • 什么原理?
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档