احتمالاً تاحالا بارها با QR Code برخورد کردی. همون مربعهای سیاه و سفیدی که وقتی دوربین گوشیتو روش میگیری، سریع یه لینک یا پیام برات باز میشه! 🤩
توی این مقاله با هم یاد میگیریم چطور با زبان پایتون QR Code بسازیم. خیلی راحت، سریع، بدون دردسر!
QR Code (یا Quick Response Code) یه نوع بارکد دوبعدیه که میتونه انواع اطلاعات مثل لینک سایت، متن، شماره تلفن، رمز وایفای و... رو تو خودش ذخیره کنه.
یکی از جذابترین ویژگیهاش اینه که با دوربین موبایل خیلی سریع خونده میشه. واسه همینه که روی بلیط، تبلیغات، کارت ویزیت و حتی منوی رستورانها هم میبینیش!
برای ساخت QR Code در پایتون، از کتابخونهی qrcode
استفاده میکنیم که خیلی ساده و قدرتمنده.
برای نصبش این دستور رو توی ترمینال بزن:
pip install qrcode[pil]
📌 نکته: این کتابخونه از Pillow
برای ساخت فایل تصویری استفاده میکنه. با نوشتن [pil]
خودش اتوماتیک اونم نصب میکنه.
بریم یه QR Code خیلی ساده بسازیم که وقتی اسکنش میکنی، بری به سایت mrpy.ir:
import qrcode
data = "https://mrpy.ir"
qr = qrcode.make(data)
qr.save("myqr.png")
🧠 توضیح کد:
import qrcode
: وارد کردن کتابخونهdata
: اطلاعاتی که قراره داخل QR ذخیره شهmake
: ساخت QR Codesave
: ذخیره به صورت فایل تصویری PNGحالا بیایم یه QR Code حرفهایتر بسازیم با تنظیماتی مثل اندازه، رنگ و خطایابی:
import qrcode
from PIL import Image
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=10,
border=4,
)
qr.add_data("https://mrpy.ir")
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
img.save("custom_qr.png")
🧠 توضیح گزینهها:
version
: اندازه QR (از 1 تا 40)error_correction
: سطح بازیابی خطا (هرچی بالاتر، بهتر!)box_size
: اندازه خونههاborder
: حاشیه اطراف QRfill_color
: رنگ داخل QRback_color
: رنگ پسزمینهمیخوای یه کد QR بسازی که با اسکنش، کاربر به وایفای وصل شه؟ خیلی راحته:
wifi_info = "WIFI:T:WPA;S=HomeNetwork;P=StrongPassword123;;"
qr = qrcode.make(wifi_info)
qr.save("wifi_qr.png")
🧠 ساختار رشته:
T
: نوع رمزنگاری (مثلاً WPA یا WEP)S
: نام شبکه وایفای (SSID)P
: رمز عبور وایفایکتابخونهی qrcode
خیلی راحت و سریع QR Code میسازه. میتونی باهاش متن، لینک، اطلاعات وایفای یا هر چیز دیگهای رو داخل یه تصویر جذاب قرار بدی.