-
دوشنبه, ۸ ارديبهشت ۱۳۹۹، ۰۷:۴۸ ب.ظ
-
۲۷۶۰
کار با QRCode(بارکد) در پایتون
درود به همه
امروز در خدمت شما هستیم با یه مطلب پایتونی دیگه .
QRCode چیست ؟ QRCode یک نوع بارکد دو بعدی است که توسط مربع های مشکی و سفید کوچک اطلاعات را در خود نگهداری میکند . این کد ها توسط بارکد خوان اسکن و خوانده میشود .
تصویر زیر نمونه ای از یک بارکد که حاوی متن MrPython.blog.ir است .
خب امروز میخوایم ببینیم چطوری میتونیم این بارکد ها رو توی پایتون در ابتدا بسازیم و سپس اطلاعات اونا رو بخونیم . برای اینکار ما نیاز به سه کتابخانه داریم . کتابخانه ی qrcode برای تولید بارکد و کتابخانه ی pyzbar برای خواندن و رمزگشایی بارکد و کتابخانه ی Pillow برای کار با تصویر بارکد.
برای نصب این دو کتابخانه از pip استفاده میکنیم .
در لینوکس :
MrPython@debian:~$ pip3 install qrcode pyzbar Pillow
در ویندوز :
خب پس از نصب این دو کتابخانه میریم سراغ کدنویسی .
در اینجا ما دو سورس کد معرفی میکنیم . سورس کد اولی بارکد تولید میکند و سورس کد دومی بارکد تولید شده را میخواند و رمزگشایی (Decode) میکند .
سورس ساخت بارکد :
import qrcode
text = "MrPython.blog.ir"
qr = qrcode.make(text)
qr.save("my_qrcode.png")
میبینید که سورس بسیار سادس . اول کتابخونه رو وارد کردیم . بعد یه متغییر به نام text تعریف کردیم و متنی که میخوایم برامون ازش بارکد بسازه رو میزاریم داخلش . سپس گفتیم از کتابخونه ی qrcode با تابع make برامون یه بار کد بساز که حاوی متن متغییر text باشه و بریز داخل متغییر qr . بعد هم گفتیم فایل رو ذخیره کنه با یه پسوند تصویری png .
حالا این برنامه برای ما یه بارکد در فایل تصویری به نام my_qrcode.png ساخت که حاوی متن MrPython.blog.ir است . حالا میخوایم یه سورس بنویسیم همین تصویر رو بخونه و رمزگشایی کنه .
سورس خواندن بارکد :
from pyzbar.pyzbar import decode
from PIL import Image
picture = Image.open("my_qrcode.png")
qr = decode(picture)
text = qr[0].data.decode()
print("Text : {}".format(text))
خب در ابتدا کتابخانه های مورد نیاز رو وارد کردیم . بعد تصویری که سورس قبل برامون تولید کرد رو باز کردیم ریختیم داخل متغییر picture . سپس با استفاده از متد decode تصویر رو رمزگشایی کردیم و ریختیم داخل متغییر qr . سپس از متغییر qr که حاوی اطلاعات بارکدی بود که خوندیم ، متن ذخیره شده پشت بارکد رو درآوردیم و ریختیم داخل text . بعدم متغییر text رو پرینت کردیم .
به همین راحتی .
امیدوارم مفید واقع شده باشه .
یا خق !