İşimle ilgili komut satırından göndereceğim dinamik değişkenin oluşturacağı offline çalışacak bir QR Code generator’e ihtiyacım oldu. Bir kaç paket denedikten sonra sonucu en iyi aldığım paketle oluşturduğum en temel seviyedeki kod halini burada paylaşmak istedim. Böylece uzun zamandır yazmadığım bloğuma da yazma sebebim olsun.
Paketle ilgili temel bilginin ve nasıl kullanılacağını anlatan Python Package Index (pypi) sayfası şöyle;
Orada göreceğiniz yönergede dediği gibi kurulumu komut satırından şu şekilde yapabilirsiniz;
pip install PyQRCode
Bu tabi bizim temel paketimiz. Bunun dışında sisteminizde QR Code’u oluşturacağınız resim formatı olan PNG içinde pypng paketini kurmalısınız;
pip install pypng
Kod içine yaptığım açıklamaları ve yönergeleri inceleyebilirsiniz. Sonrasında ihtiyaca göre istediğiniz gibi değiştirirsiniz.
# -*- coding: utf-8 -*-
"""
@author: Hakan Müştak @2022 #hmustak
@mail: hakan[@]mustak.org
@web: mustak.org
@social: twitter.com/hmustak
"""
import pyqrcode # QR Code için paketimiz
import png, sys, os # İhtiyaç duyulan diğer paketlerimiz
from datetime import datetime # Tarih/Saat bilgisi için paketimiz
# QR Code içinde yazacak değişkenlerimizi oluşturuyoruz
# (opsiyonel dışarıdan da alabiliriz)
if len(sys.argv) > 1:
qrId = sys.argv[1] # dışarıdan argüman geldiyse kullan
else:
qrId = "XX123456789XX" # dışarıdan argüman gelmediyse...
# Timestamp oluşturalım
qrDateTime = datetime.today().strftime('%Y-%m-%d %H:%M:%S')
# QR Code metnimizi oluşturuyoruz
qrText = "ID : {id} - Date/Time : {zaman}".format(id=qrId, zaman=qrDateTime)
# QR Code'u yaratıyoruz
qrCode = pyqrcode.create(qrText, error='L', version=5)
# Resmi (PNG dosyasını) oluşturuyoruz
qrCode.png('code.png', scale=5, module_color=[0, 0, 0, 128], background=[0xff, 0xff, 0xcc])
# Gösterilmesini sağlıyoruz
qrCode.show()
# Ekrana da log/bilgi geçelim
os.system("color")
print("QRCode...\033[92m Created \033[0m")
# çıkıyoruz
sys.exit()
QR kodumuz oluştu ;
Hakan Müştak
@2022

Merak edip karebarkodu okuttuğumda tebessüm ettim :)) Eline sağlık hocam.
Kolaylıklar dilerim, selamlar 😎