設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

超有趣的 Python 開源工具,教你做出彩色、會(huì)動(dòng)的二維碼

量子位 2021/12/9 22:10:45 責(zé)編:汪淼

你有沒有見過彩色的,會(huì)動(dòng)的二維碼?比游戲還刺激的那種(狗頭):

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

還有這個(gè),當(dāng)年要是被王司徒掃到了,肯定等不及在兩軍陣前發(fā)表高論就氣倒了:

這些二維碼雖然鬼畜了起來,但是并不影響它作為二維碼的原始功能,不信可以試試,照樣能掃出來~

這是一位名叫 Lars heuer 的小哥制作的一款二維碼編輯器 Segno,讓黑白的二維碼世界亮了起來,在 GitHub 上收獲了 200 多顆星:

這款編輯器可以把二維碼的背景換成不同的顏色,圖片甚至是 gif 圖片:

并且全部程序不需要任何依賴項(xiàng),并且支持多種格式,快來康康。

如何給二維碼換裝?

要想給二維碼換裝首先我們得準(zhǔn)備一個(gè)二維碼還有一件“衣服”。

其中二維碼可以通過函數(shù)生成,只需要填上你希望掃描二維碼之后顯示出的文字或者網(wǎng)址之類的信息。

“衣服”就是背景圖啦,多種格式的圖片和鬼畜動(dòng)圖都可以。

具體到操作層面應(yīng)該怎么做呢?

Lars heuer 準(zhǔn)備了兩個(gè)庫(kù):qrcode-artistic 和 Pillow。

我們先把這兩個(gè)庫(kù)裝上:

pip install qrcode-artistic
pip install Pillow

然后用 segno.make () 生成一個(gè)二維碼,在函數(shù)中填上掃描二維碼顯示出的內(nèi)容。

有了生成函數(shù)之后,在轉(zhuǎn)化函數(shù) qrcode.to_artistic,background 之后輸入你想要替換的背景,可以輸入.png,.jpg,.gif 等格式的圖片。

最后在 target 之后給輸出的二維碼命名,方便在文件夾中找到。

>>> import segno
>>> qrcode = segno.make('1', error='h')
>>> qrcode.to_artistic(background='2', target='3',
...                    scale=8)

等運(yùn)行完畢,你就能在項(xiàng)目文件中找到帶有各種背景的二維碼了~

什么原理?

其實(shí)道理也很簡(jiǎn)單。

二維碼能修改部分背景是因?yàn)槎S碼中不同的區(qū)域,承擔(dān)不同的功能,并且可以自定義顏色。

例如很明顯的一點(diǎn),常見的二維碼在三個(gè)角上有較大的像素塊(標(biāo)紅),用來定位:

在三個(gè)大像素塊旁邊的黑色像素塊(標(biāo)紅)用來設(shè)置格式信息:

而左下和右上兩個(gè)大像素塊旁邊的黑色像素塊(標(biāo)紅)用來確定版本信息等等:

因此,當(dāng)我們自定義這些區(qū)域的顏色時(shí),就可以改變二維碼的背景了。

大開腦洞來試試吧,更細(xì)節(jié)的信息可以在文末鏈接中找到~

參考鏈接:

[1]https://github.com/heuer/segno

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

廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:二維碼,Python,開源

軟媒旗下網(wǎng)站: IT之家 最會(huì)買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會(huì)買 要知