İş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 😎