หลังจากสองบทความที่แล้ว :
สร้าง QR code บน Python
สร้างบาร์โค๊ด Barcode ด้วย Python
คราวนี้เราจะไปเขียนโปรแกรมภาษา Python ให้อ่าน Barcode และ QR Code ได้ครับ
การอ่าน Barcode และ QR Code ด้วย Python ผมได้ค้นข้อมูลในอินเทอร์เน็ตพบไลบรารีตัวหนึ่งของภาษาซีที่สามารถอ่าน Barcode และ QR Code ได้ นั้นคือ ไลบรารี ZBar ไลบรารีนี้ใช้ License: LGPL
สำหรับ Windows
ให้โหลดไฟล์ ZBar Windows Installer จาก http://zbar.sourceforge.net/download.html มาติดตั้งแล้ว เพิ่ม PATH ของ zbar เช่น ผมติดตั้ง zbar ไว้ใน C:\Program Files (x86)\ZBar\ ผมจึงเพิ่ม C:\Program Files (x86)\ZBar\ZBar\bin เข้าไปแล้วกด ตกลง ครับ
สำหรับ Mac OS X
ใช้คำสั่ง
brew install zbar
สำหรับ Linux สาย Debian/Ubuntu
ใช้คำสั่ง
$ sudo apt-get install libzbar0 libzbar-dev
อ่าน Barcode และ QR Code สำหรับ Python 2
ใช้ไลบรารี python-zbar ในการทำงานร่วมกับ ZBar ครับ ไลบรารีนี้ใช้ License: LGPL
สำหรับ Linux สาย Debian/Ubuntu ใช้คำสั่ง
sudo apt-get install python-zbar
สำหรับ Mac OS X ใช้คำสั่ง
pip install zbar
สำหรับ Windows
โหลดไฟล์บีบอัดโค้ด .zip จาก https://pypi.python.org/pypi/zbar/ แตกไฟล์แล้วเปิดไฟล์ setup.py ขึ้นมาแล้วแก้ไขไฟล์ตามนี้ครับ
1) เพิ่ม from distutils.sysconfig import get_config_vars เข้าไปยังบรรทัดที่ 3 ของไฟล์ 2)เพิ่มบรรทัดต่อไปนี้เข้าไปยัง Extension call : library_dirs=["""zbarlibdirectory"""], include_dirs=[get_config_vars('INCLUDEDIR'), get_config_vars('INCLUDEPY'), """zbarincludedirectory"""] ถ้าผู้อ่านติดตั้ง ZBar ไว้ใน d:\zbar\ จะเป็น library_dirs=["""d:\zbar\lib"""], include_dirs=[get_config_vars('INCLUDEDIR'), get_config_vars('INCLUDEPY'), """d:\zbar\include"""]
บันทึกไฟล์แล้วใช้คำสั่ง (โปรดตรวจสอบการตั้งค่า C compiler กับ Python ให้เรียบร้อยครับ)
python setup.py install
การใช้งานไลบรารี zbar กับ Python 2
from PIL import Image
import zbar
scanner = zbar.ImageScanner()
pil = Image.open('zbartest2.png').convert('L') #เปิดไฟล์ zbartest2.png เพื่ออ่านข้อมูล
width, height = pil.size
raw = pil.tostring()
image = zbar.Image(width, height, 'Y800', raw) # อ่าน Barcode และ QR Code
scanner.scan(image) #ค้นหารูปภาพของ Barcode และ QR Code
for symbol in image:
print 'decoded', symbol.type, 'symbol', '"%s"' % symbol.data #แสดงข้อมูล
อ่าน Barcode และ QR Code สำหรับ Python 2 , Python 3
ใน Python 3 มีผู้พัฒนาโมดูลสำหรับใช้งาน ZBar เหมือน Python 2 ขึ้นมาครับ แต่เนื่องจากไม่เสถียรพอ ผมจึงไม่แนะนำ ใช้วิธีนี้แทนครับ ใช้งานได้ทั้ง Python 2 และ Python 3 ครับ
subprocess.check_output(["zbarimg","-q","ไฟล์ Barcode หรือ QR Code.PNG"])
ตัวอย่างเช่น
>>> import subprocess
>>> subprocess.check_output(["zbarimg","-q","ean13_barcode.png"])
b'EAN-13:5901234123457\r\n'
>>> a = subprocess.check_output(["zbarimg","-q","ean13_barcode.png"])
>>> a.decode('utf-8')
'EAN-13:5901234123457\r\n'
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)