編程學習網 > 編程語言 > Python > Python制作各種用途的二維碼教程
2023
07-04

Python制作各種用途的二維碼教程


當你提到二維碼時,大多數人想到的是倉庫管理或產品標簽等 "工業 "應用,但這篇文章在很大程度上是關于二維碼的個人和社會用途。

有趣的事實

二維(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://www.baidu.com/')
video.save('Video.png', scale=4)
圖片

只需多寫一行代碼,我就能創建一個更加豐富多彩的QR碼,在這種情況下,我最喜歡的一張圖片實際上是一個用Piet編程語言編寫的 "Hello World "腳本。

pip install qrcode-artistic
import segno

piet = segno.make('https://www.baidu.com/', error='h')
piet.to_artistic(background="background.png", target='Piet.png', scale=16)


攜帶WIFI詳細信息的QR碼

我的第二個任務(WIFI登錄細節)的Python代碼也同樣簡單,但我定制了顏色并使輸出更大。

importc 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.baidu.com/',
        'https://www.baidu.com/'
    ],
    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://www.baidu.com/',
        'https://medium.com/@petefison',
        'https://github.com/pfython'
    ],
    phone="+44xxxxxxxxxx",
)

awsom.to_artistic(
    background="logo.png",
    target='AWSOM.png',    
    scale=6,
    quiet_zone="#D29500"
)

以上就是Python制作各種用途的二維碼教程的詳細內容,想要了解更多Python教程歡迎持續關注編程學習網。

掃碼二維碼 獲取免費視頻學習資料

Python編程學習

查 看2022高級編程視頻教程免費獲取