iT邦幫忙

2021 iThome 鐵人賽

DAY 23
9
Software Development

奇怪的知識增加了!原來程式還可以這樣用?!系列 第 23

[Day23] 把妹神招! 教你用Python做浪漫告白QR Code❤

上一篇有提到如何用Python做出動態彩色的QR Code~
其中掃碼的結果除了可以導向網頁之外也可以放文字,但上次提到的MyQR套件不支援中文><

所以今天就要來分享qrcode套件(支援中文),他可以跟Pillow套件一起用,
做出像防疫實聯制一樣的QR Code,裡面夾帶浪漫情話,跟心儀的女生愛的告白❤

開發環境

程式碼

import qrcode
from PIL import Image

def make_qrcode(text): # 建立QR Code
    qr = qrcode.QRCode(version=10, box_size=8, border=4)
    qr.add_data(text)
    qr.make(fit=True)
    return qr.make_image(fill_color="black", back_color="white")
    
def add_img(back_image, logo_image):
    qrcode_size = back_image.size[0] # 得到整張QR Code的邊長
    qr_back = Image.new('RGBA', back_image.size, 'white') # 建一個全白背景
    qr_back.paste(back_image) # 貼上QR code
    logo_size = int(qrcode_size / 5) # 調整logo大小
    logo_offset = int((qrcode_size - logo_size) / 2) # 把logo位置設定在正中間
    resized_logo = logo_image.resize((logo_size, logo_size))
    qr_back.paste(resized_logo, box=(logo_offset, logo_offset))
    return qr_back
       
logo_image_file = '圖片.png'
text = '跟偶交往好嗎 (摸頭燦笑'
logo_image = Image.open(logo_image_file)
qr_code = make_qrcode(text)
final = add_img(qr_code, logo_image)
final.save('qrcode.png')
final.show()

成果發表會
https://ithelp.ithome.com.tw/upload/images/20210922/20133286Vvw14TACx6.png

做出來會是這樣的QR Code,可以再P到一般簡訊實聯制的背景上~
https://ithelp.ithome.com.tw/upload/images/20210922/201332866REW91AgxY.png

然後就可以印一個海報貼在商店門口誘騙心儀的女生掃了~
而且進可攻退可守,被拒絕還可以直接裝傻,真是一舉兩得!


上一篇
[Day22] 會不會覺得QR Code有點單調? 用Python做出動態QR Code吧!
下一篇
[Day24] iT邦幫忙502 Bad Gateway怎麼辦? 教你自動偵測網頁修復了沒!
系列文
奇怪的知識增加了!原來程式還可以這樣用?!30
1
小山丘
iT邦新手 5 級 ‧ 2021-09-23 14:56:23

好喔(摸頭燦笑

1
joe
iT邦新手 5 級 ‧ 2021-09-23 14:57:48

(茶

1
gior__ann
iT邦新手 4 級 ‧ 2021-09-23 15:08:07

厲害神招!!!!! XD

1
r567tw
iT邦新手 3 級 ‧ 2021-09-23 15:45:27

用這個和你告白會不會成功?

1
jason789780
iT邦新手 5 級 ‧ 2021-09-23 17:16:02

真的會笑死(原地托馬斯迴旋

1
dscwferp
iT邦高手 1 級 ‧ 2021-09-23 17:37:05

老婆我來了!

2
AndyChiang
iT邦新手 5 級 ‧ 2021-09-24 09:00:54

我一直很好奇 中間部分改成圖片為什麼不會影響掃描的結果?

lulu_meat iT邦新手 4 級 ‧ 2021-09-24 09:08:22 檢舉

只要中間的logo大小在容錯率內,且不遮住任一重要定位點(周圍那三個大的點),都還是可以掃描喔~

我要留言

立即登入留言