top of page
Search
Learn with Shin

利用Python做出QR Code



OK,看到這個標題你可能會想:網路上有很多免費的QR Code生產器,我何必自己用Python來做?


嗯...是沒錯啦 😅...


是說如果你想要在程式中大量的產生QR Code,那Python可以是你的好朋友 👫


或者你像我一樣不喜歡在陌生的網站上登錄資料,又單純自己想動手做做看的話,Python還是你的好朋友 👫



首先,什麼是QR Code?


簡單來說,QR Code就是帶有一些訊息的條碼。外觀上,QR Code是一個矩陣形狀(二維條碼)。



透過既定的掃描方式可以去解讀條碼裡面包含的資訊。現行的手機應該都可以利用相機鏡頭來讀取。(話說,上面的QR Code會帶你到 learnwithshin.com  😎)


QR Code在亞洲國家已經行之有年。在台灣,現在處處都可以看到QR Code,應用的範圍包括行銷廣告、線上消費、資訊交換、銀行、媒體、大眾交通、名片製作等...總之非常非常廣泛。疫情中,衛福部的實聯制也是利用QR Code在推行。


現行的QR Code可以儲存高達4,000多個英文字母等符號,常用來儲存的資料類型包括:

  • 網頁連結

  • 社群(像是facebook, Line等等)

  • E-mail

  • App下載連結

  • 住址

以及單純的文字內容等等...



qrcode


接下來我們就來介紹一下今天要用的Python Library:qrcode


安裝如下,除了qrcode,我們也同時安裝了Pillow用來處理圖檔:


pip install qrcode Pillow

qrcode的使用相當簡單...只需要幾行code就可以做出一個QR code!




當你用QR Code的掃描器或是你的手機相機掃描一下上面的QR Code,你應該會得到 "This is my QR Code“ 這樣的訊息 (還會問你要不要用瀏覽器搜尋) 。Amazing~🙀!!





如果你想要造型上更客製化的QR Code,可以利用QRCode class來做一些細節上的調整:



上面的Code會產生這樣的QR Code:



嗯~藝術是主觀的 👨‍🎨。


利用QRCode物件,你可以有更多的彈性做一些設定上的調整,譬如說:

  • error_correction:錯誤修正的比例值。由低至高分別有,ERROR_CORRECT_L,ERROR_CORRECT_M,ERROR_CORRECT_Q,ERROR_CORRECT_H。錯誤修正越高代表可容忍的誤差越大。意思說就算你的QR Code有點受損(譬如說在圖中間加一個小logo),可能也還是有辦法被判讀。

  • box_size:調整QR Code裡每個格子的尺寸。

  • border:調整邊界的大小。

  • 利用add_data這個method,將你要的訊息放進QR Code中。

  • 利用make_image中,fill_color及back_collor來設定顏色。


有興趣的可以參考官方來試試看更多的客製化QR Code喔 😀



QR Code訊息與應用程式的整合


根據QR Code的儲存訊息的格式或型態,我們的手機可能已經知道要用哪些應用程式來處理。

譬如說,如果訊息長得像:

  • 網址:會問你要不要用瀏覽器來開

  • 電話:會問你要不要打電話

  • Email地址:會問你要不要寫Email

  • 地址:會問你要不要用地圖功能


諸如此類...特定的資料格式有可能已經跟一些App做好了整合。



來試試看一個情境例子吧:


今天假設我們有一個小小聯誼,身為主辦單位我已經收集每個參與者的聯絡資料。我想要讓參加的人能夠更方便的得到互相的聯絡方式...Yes,利用QR Code 🤔


下面的例子裡,我們用到的是vCard電子名片格式:



透過這種方式我們產生出三個QR Code分別為Bob, Ken還有James。


如果你用iPhone的話,應該可以直接掃描這幾個QR Code並直接加入聯絡人清單喔~。下面是其中一個例子(只是一個例子,不要真的加入喔!)



現在,我可以幫大家把聯絡資料做成QR Code,製作成小名片並在聯誼開始時分發給參與者,大家只需要掃描一下對方的卡片就可輕鬆加入聯絡人囉~ 😀



小結


今天我們稍微介紹了QR Code的應用以及如何利用Python來生成它,也是希望讓大家覺得Python更貼近我們的日常生活 🌸。


隨著疫情影響全世界,零接觸(touch-free )在全世界形成了一種主流。QR Code雖然在亞洲已經行之有年,但是現在更強烈的感受到它的實用性...


嗯...好像太嚴肅了👴。


總之重點是QR Code不但實用也很有趣對吧?如果你還有什麼Idea也請跟我們一起分享喔!

Comments


Post: Blog2_Post
bottom of page