ผมเคยเจอปัญหาทำป้ายไวนิลให้องค์กร เพื่อให้ผู้ใช้ 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
ขั้นตอนการติดตั้ง Vuetify ใน Laravel
3 เทคนิค เพิ่มความเร็วใน Laravel
ฟังก์ชันวันเวลาที่น่าสนใจใน MySQL
เคล็ดลับการเรียงลำดับข้อมูลใน MySQL
เชื่อมตารางตัวเองใน MySQL ด้วย SELF JOIN
เคล็ดลับเพิ่มประสิทธิภาพการใช้ Google Docs
เทคนิคการใช้ ChatGPT Plus ให้คุ้มค่า คุ้มราคา
เชื่อมหลายฐานข้อมูล MySQL ใน Codeigniter4