ผมเคยเจอปัญหาทำป้ายไวนิลให้องค์กร เพื่อให้ผู้ใช้ 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
command line ตรวจสอบ spec ใน Windows OS
วิธีผูก วินิจฉัย (Diagnosis) กับ วัคซีน (Vaccine)
ETL ใน Data Engineering คืออะไร?
แก้ปัญหา export ภาษาไทยเพี้ยน ของ MySQL ใน phpMyAdmin
เชื่อมตารางตัวเองใน MySQL ด้วย SELF JOIN
เคล็ดลับเพิ่มประสิทธิภาพการใช้ Google Docs
เทคนิคการใช้ ChatGPT Plus ให้คุ้มค่า คุ้มราคา
เชื่อมหลายฐานข้อมูล MySQL ใน Codeigniter4