Resim

Hızlı QR Kod Oluşturucu

Hızlı QR Kod Oluşturucu

Bugün, Python'ın gücünü kullanarak akıllı telefonlarımızda gördüğümüz o kare barkodları, yani QR kodlarını nasıl oluşturacağımızı öğreneceğiz. Bu, hem çok pratik bir beceri hem de Python'da harici kütüphaneleri (external libraries) nasıl kullanacağınızı gösteren harika bir örnektir.

QR kodları; URL'lerden metinlere, Wi-Fi şifrelerinden kartvizit bilgilerine kadar her şeyi depolayabilir. Hazırsanız, kendi QR kodlarımızı oluşturmaya başlayalım!

💻 Python Kodu: QR Kod Oluşturucu

Öncelikle, bu projeyi çalıştırabilmeniz için qrcode kütüphanesini kurmanız gerekiyor. Terminalinize aşağıdaki komutu yazarak kurabilirsiniz:

pip install qrcode Pillow

Pillow kütüphanesi, qrcode kütüphanesinin görüntüyü işleyebilmesi için gereklidir.

import qrcode
import os # Dosya yolları ve klasör işlemleri için
def qr_kod_olustur():
    print("-" * 50)
    print("Python QR Kod Oluşturucuya Hoş Geldiniz")
    print("-" * 50)
    # Kullanıcıdan veri al
    veri = input("QR koduna dönüştürmek istediğiniz metni veya URL'yi girin: ")
    if not veri:
        print("QR koduna dönüştürülecek bir veri girmelisiniz!")
        return
    # Dosya adını al
    dosya_adi = input("Oluşturulacak QR kod dosyasının adını girin (örn: benim_qrim.png): ")
    if not dosya_adi.strip(): # Kullanıcı boş bırakırsa varsayılan isim ata
        dosya_adi = "varsayilan_qr_kodu.png"
    elif not dosya_adi.endswith(".png"): # .png uzantısı yoksa ekle
        dosya_adi += ".png"
    # 1. QR Kod Objesi Oluşturma
    # version: QR kodun karmaşıklığı (1-40 arası, 1 en basitidir)
    # error_correction: Hata düzeltme seviyesi (L, M, Q, H - L en düşük, H en yüksek)
    # box_size: Her kutunun piksel boyutu
    # border: QR kodun etrafındaki boş beyaz alan (kutu sayısı)
    qr = qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=10,
        border=4,
    )
    # 2. Veriyi QR Koda Ekleme
    qr.add_data(veri)
    qr.make(fit=True) # Veriyi QR kodun boyutuna göre otomatik ayarlar
    # 3. Görüntü Oluşturma
    # fill_color: QR kodun renkli kısımları
    # back_color: Arka plan rengi
    img = qr.make_image(fill_color="black", back_color="white")
    # 4. QR Kodu Kaydetme
    try:
        # Kodun çalıştığı klasörde 'qr_kodlar' adında bir klasör oluştur
        output_folder = "qr_kodlar"
        if not os.path.exists(output_folder):
            os.makedirs(output_folder)        
        # Tam dosya yolunu oluştur
        file_path = os.path.join(output_folder, dosya_adi)
        img.save(file_path)
        print("=" * 50)
        print(f"QR Kodunuz başarıyla oluşturuldu ve '{file_path}' konumuna kaydedildi.")
        print("=" * 50)
    except Exception as e:
        print(f"Hata oluştu, QR kod kaydedilemedi: {e}")
# Programı başlat
if __name__ == "__main__":
    qr_kod_olustur()

📝 Kodun Adım Adım Açıklaması

Bu proje, harici kütüphanelerin Python projelerinize ne kadar güç katabileceğini gösteren harika bir örnektir. Kendi başınıza bir QR kod algoritması yazmak yerine, uzmanların geliştirdiği bir aracı kolayca kullanırız.

Adım 1: Gerekli Kütüphaneleri Kurma ve İçe Aktarma

# Terminalde çalıştırmanız gereken komut:
# pip install qrcode Pillow

import qrcode
import os
  • qrcode: Bu kütüphane, metin verisini alıp bir QR kod görüntüsü oluşturma işini yapar. Bizim için tüm karmaşık matematiksel algoritmaları halleder.

  • Pillow (PIL): qrcode kütüphanesi, oluşturduğu QR kod verisini görsel bir dosyaya (.png, .jpg vb.) dönüştürmek için Pillow kütüphanesine ihtiyaç duyar.

  • os: Bu Python'ın yerleşik bir modülüdür. Özellikle dosya sistemiyle etkileşime girmek (klasör oluşturma, dosya yollarını birleştirme gibi) için kullanırız.

Adım 2: QR Kod Ayarlarını Yapılandırma (qrcode.QRCode)

qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=10,
    border=4,
)
  • qrcode.QRCode(): Bu, bir QR kod nesnesi oluşturmamızı sağlar ve bazı temel ayarları yapmamıza olanak tanır:

    • version: QR kodun karmaşıklık seviyesidir (1'den 40'a kadar). 1 en basitidir ve az veri içerir. Genellikle 1-4 arası başlangıç için yeterlidir.

    • error_correction: Hata düzeltme seviyesini belirler. Eğer QR kodun bir kısmı hasar görse bile taranabilmesini sağlar. L (düşük) en az hata düzeltme, H (yüksek) en fazla hata düzeltme sunar.

    • box_size: QR kodun içindeki her bir "kutu"nun (modülün) piksel cinsinden boyutudur. Büyük değerler, daha büyük bir görüntü oluşturur.

    • border: QR kodun etrafındaki beyaz boşluğun kaç tane kutu genişliğinde olacağını belirler. İyi bir tarama için genellikle 4 veya daha fazlası önerilir.

Adım 3: Veriyi Ekleme ve Görüntü Oluşturma

qr.add_data(veri)
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
  • qr.add_data(veri): Kullanıcıdan aldığımız metni veya URL'yi QR kod nesnesine ekleriz.

  • qr.make(fit=True): Eklenen veriyi QR kodun boyutuna en uygun şekilde ayarlar.

  • qr.make_image(): Son olarak, bu veriyi ve ayarları kullanarak görsel bir QR kod görüntüsü oluştururuz. fill_color (ön plan) ve back_color (arka plan) parametreleriyle renkleri belirleyebiliriz.

Adım 4: QR Kodu Kaydetme

output_folder = "qr_kodlar"
if not os.path.exists(output_folder):
    os.makedirs(output_folder)
file_path = os.path.join(output_folder, dosya_adi)
img.save(file_path)
  • Klasör Oluşturma: os modülünü kullanarak, oluşturulan QR kodlarını düzenli tutmak için qr_kodlar adında bir klasör olup olmadığını kontrol eder ve yoksa oluştururuz.

  • Kaydetme: img.save() fonksiyonu ile oluşturduğumuz görüntüyü belirttiğimiz yola ve adla kaydederiz.

Tebrikler! Artık kendi QR kodlarınızı kolayca oluşturabiliyorsunuz. Bu proje, harici kütüphanelerin Python projelerimize ne kadar büyük bir değer katabileceğini net bir şekilde gösteriyor. İstediğiniz herhangi bir metin veya URL için bir QR kod oluşturun ve telefonunuzla tarayın!

📹ÖĞRENDİKLERİNİZİ PEKİŞTİRİN:
Hemen aşağıdaki videomuza tıklayın. Adım adım ilerleyerek öğrendiklerinizi görsel olarak pekiştirin .



Yorumlar

Bu blogdaki popüler yayınlar

Python random Modülü

Python print()

Yazılım Nedir?