Programming

สร้าง QR Code ด้วย Python

ทำไมต้องเขียนโปรแกรมเพื่อสร้าง QR Code เอง? เพราะของที่ให้ใช้ฟรีส่วนใหญ่ มันคิดเงินและ QR Code หมดอายุยังไงล่ะ

ผมเคยเจอปัญหาทำป้ายไวนิลให้องค์กร เพื่อให้ผู้ใช้ scan QR Code ปรากฎว่าผ่านไป 1 อาทิตย์ QR Code นั้นสแกนไม่ได้จ่ะ สาเหตุเกิดจากใช้เว็บ generate แล้วมันหมดอายุ ฉะนั้นถ้าคุณต้องการความแน่นอนในการ Generate QR Code ทำเองจะอุ่นใจกว่านะ

ติดตั้ง package qrcode

pip install qrcode[pil]

อธิบายโค้ด

  • [pil] คือการติดตั้ง package pillow ด้วย เพื่อเอาไว้ generate รูปภาพ

ทดลองใช้ด้วยการใช้ฟังก์ชัน make

สร้างไฟล์ qrcode.py หรือจะชื่ออะไรก็แล้วแต่ เพิ่มโค้ด

import qrcode
img = qrcode.make('Hi')
type(img)  # qrcode.image.pil.PilImage
img.save("some_file.png")

อธิบายโค้ด

  • บรรทัด 1: import package qrcode
  • บรรทัด 2: ใช้ฟังก์ชัน make เพื่อสร้าง qrcode จากข้อความว่า Hi และเก็บไว้ที่ตัวแปร img
  • บรรทัด 3: แปลงตัวแปร img ให้เป็นรูปภาพ ด้วยความสามารถของ pillow
  • บรรทัด 4: บันทึกเป็นรูปภาพ โดยใช้ชื่อว่า some_file.png

ทดสอบรันไฟล์ python

python qrcode.py

ผลที่ได้คือไฟล์ some_file.png ที่อยู่ในรูปแบบ QR Code

ทดลองยากขึ้นอีกหน่อย

จากโค้ด

import qrcode

qr = qrcode.QRCode(
    version = 1,
    error_correction = qrcode.constants.ERROR_CORRECT_H,
    box_size = 10,
    border = 4,
)

data = "https://google.com"
qr.add_data(data)
qr.make(fit=True)

img = qr.make_image()
img.save("qrcode.png")

อธิบายโค้ด

  • บรรทัด 3: เริ่มสร้าง qrcode instance
  • บรรทัด 4: version จะมีค่าเป็น integer (1-40) ซึ่งเป็นการกำหนดขนาดของ QR Code ถ้าเป็นมีค่าเป็น 1 คือ ขนาดเล็กสุด
  • บรรทัด 6: box_size คือ การบอกว่าจะมีกี่ pixels ในแต่ละ box ของ qr code
  • บรรทัด 7: border คือ ความหนาของขอบ ซึ่งเริ่มต้นที่ 4
  • บรรทัด 10-14 : กระบวนการสร้าง QR Code ของเว็บ google.com
  • บรรทัด 15 : บันทึกเป็นภาพที่ชื่อว่า qrcode.png

ทดสอบรันโค้ดและลองประยุกต์ใช้ดูนะครับ

อ่านเพิ่มเติมได้ที่ pypi.org

Tags