Bu yazımızda Python kullanarak hızlı ve en basit şekliyle QR kod (Kare Kod) oluşturmayı anlatıyoruz. QrCode Kütüphanesi ile saniyeler içerisinde kendi QR kodlarınız oluşturabileceksiniz.
Bir sonraki yazımızda da Python ve OpenCV kullanarak QR kod okumayı ve içindeki bilgiyi yazdırmayı anlatacağız.
İçerik Tablosu
QR Kod KareKod Nedir?
Quick Response (Hızlı Yanıt) kısa ve yaygın adıyla QR kodu, hızlı okunabilirliği ve nispeten büyük depolama kapasitesi nedeniyle kullanılan iki boyutlu bir piktografik(1) koddur. Kod, beyaz zemin üzerine kare şeklinde düzenlenmiş siyah modüllerden oluşur.
Karekod; Orjinal adı datamatrix olan 2 boyutlu barkod tipli barkodlara verilen türkçe isimdir. karekod (datamatrix) tipi barkodlar klasik tek boyutlu (çizgilerden oluşan) barkodlardan farklı olarak beyaz ve siyah kare veya dikdörtgenlerden oluşan matris yapısındaki barkodlardır.
Avantajı klasik bir boyutlu barkodlara nazaran daha çok veriyi içerebilmesidir. Örneğin karekod olarak adlandırılan barkod tipi 2.335 karakter içerebilir.

Yukarıda örneğini gördğünüz QR kodun içinde “https://jn7.net” bilgisi bulunmaktadır.
Merak edenler için : (1)Piktogram ya da piktograf bir eşyayı, bir objeyi, bir yeri, bir işleyişi, bir kavramı resmetme yoluyla temsil eden semboldür. Bu sembollere dayalı yazı sistemine “piktografi” denir.
Python İle QR Kod (Karekod) Oluşturma
Gerekli Kütüphanelerin Kurulumu
Python’a eklemeniz gereken ilk kütüphane Pillow kütüphanesidir. Daha yeni sürümlerde yaygın olarak PIL veya pillow olarak bilinen Python Görüntüleme Kütüphanesi (Pillow olarak bilinen daha yeni sürümlerde), birçok farklı görüntü dosyası formatını açma, değiştirme ve kaydetme desteği veren Python programlama dili için ücretsiz bir kütüphanedir. Windows, Mac OS X ve Linux için kullanılabilir. QR Kodunu oluşturmak için pilloww kütüphanesinden yararlanan qrcode kütüphanesini kullanacağız
Bu modülü terminalinize aşağıdaki komutu uygulayarak yükleyebilirsiniz:
#Görüntü dosyaları ile çalışmak için gerekli kütüphane pip install Pillow
pillow kütüphanesinin kurulumu bittiğinde, QR jeneratör kütüphanesinin kurulumuna devam edebilirsiniz:
#QR Kodları üretmek için gerekli kütüphanemiz pip install qrcode
Aksi takdirde, Yastık olmadan QR Kod kitaplığı ile bir görüntü oluşturulurken ‘ImportError: No module named Image’ mesajını alırsınız . Pillow veya qrcode hakkında daha fazla bilgi için lütfen ana sayfalarını ziyaret edin.
Görüntü olarak QR Kodu oluşturma
Bir QR Kodu oluşturmak için yazmanız gereken kodu anlamak çok basit ve oldukça basittir. Önce qrcode kütüphanesini içe aktarın ve bundan QRCode yöntemini kullanın, ardından gerekli bağımsız değişkenleri sağlayın:
#QR Code Kütüphansesini uygulamamıza dahil ediyoruz
import qrcode
# Qr Kod oluşturma olayı
qr = qrcode.QRCode(
version = 1,
error_correction = qrcode.constants.ERROR_CORRECT_H,
box_size = 10,
border = 4,
)
# karekod içinde saklamak istediğiniz verileriniz
data = "QR kod içinde saklamak istedikleriniz. https://jn7.net"
# Veriyi ekleme
qr.add_data(data)
qr.make(fit=True)
# Görüntü dosyasının oluşturulması
img = qr.make_image()
# Oluşturulan görüntü dosyasının kayıt biçimleri. İstediğiniz formatı seçebilirsiniz.:
# img.save("image.png")
# img.save("image.bmp")
# img.save("image.jpeg")
img.save("image.jpg")
Kodumuzun tamamı bu kadar. Python kod dosyasının bulunduğu klasöre “image.jpg” ismiyle bir görüntü dosyası oluşacaktır.
Oluşturduğumuz karekodumuz.
Hata düzeltme
QR Kodunda, kod hasar görmüş veya kirliyse verileri geri yükleme hatası düzeltme özelliği vardır. Bu kütüphane ile dört hata düzeltme seviyesi mevcuttur, bunlar qrcode.constants isimli bir nesnede saklanır :
ERROR_CORRECT_L: Yaklaşık% 7 veya daha az hata düzeltilebilir.ERROR_CORRECT_M: (varsayılan) Yaklaşık% 15 veya daha az hata düzeltilebilir.ERROR_CORRECT_Q: Yaklaşık% 25 veya daha az hata düzeltilebilir.ERROR_CORRECT_H: Yaklaşık% 30 veya daha az hata düzeltilebilir.
error_correctionQR Kodunun oluşturulması sırasında mülkün değeri olarak sağlanmalıdır .
QR Kod boyutu
Oluşturulan QR kodunun boyutunu bu box_sizeözelliği ile değiştirebilirsiniz.
SVG olarak QRCode Oluşturma
QRCode’un görüntü yerine bir SVG dosyası oluşturmak istiyorsanız , eski sürüm SVG görüntüleri oluşturmak için kullanılamadığından , lxml kütüphanesini de yüklemeniz gerekir.
SVG : Ölçeklenebilir Vektör Grafikleri (İngilizce: İngilizce: Scalable Vector Graphics ya da kısaca İngilizce: SVG), 1999 yılından bu yana W3C Konsorsiyumu tarafından geliştirilen açık standart XML tabanlı bir vektörel grafik biçimidir. W3C Konsorsiyumu tarafından kullanımı tavsiye edilen bir dosya biçimidir.
xml.etree.ElementTree. lxml bir XML araç takımıdır C kütüphaneleri libxml2 ve libxslt için bir Pythonic bağlayıcıdır. Bu kitaplıkların hız ve XML özelliklerinin eksiksizliğini, çoğunlukla uyumlu ancak iyi bilinen ElementTree API’sinden daha üstün olan yerel bir Python API’sinin sadeliği ile birleştirmesi benzersizdir.
Bu modülü pip kullanarak kurmak için terminalde aşağıdaki komutu çalıştırın:
pip install lxml
Yüklemeden sonra, oluşturulacak SVG dosyası için bir ElementTree oluşturabilirsiniz. SVG’nin üretim yöntemi ihtiyaçlarınıza göre farklı olabilir, kütüphane parçaları veya yolları kullanarak 3 tip SVG yani bir SVG Resmi sunar:
import qrcode
import qrcode.image.svg
# hangi üretim yönteminin kullanılacağını seçmek için bir yöntem tanımlayın
# Seçim yapabileceğiniz methotlar 'basic' 'fragment' 'path'
method = "basic"
data = "karekodda yer alacak veriler. https://jn7.net"
if method == 'basic':
# Basit üretim, sadece bir dizi rekt.
factory = qrcode.image.svg.SvgImage
elif method == 'fragment':
# Fragment factory (also just a set of rects)
factory = qrcode.image.svg.SvgFragmentImage
elif method == 'path':
# Combined path factory, fixes white space that may occur when zooming
factory = qrcode.image.svg.SvgPathImage
# QrCode verilerini saklama
img = qrcode.make(data, image_factory = factory)
# SVG dosyasını istediğiniz isimle kaydedebilirsiniz.
img.save("qrcode.svg")
Bu kod ile de kolaylıkla SVG formatında karekod (QR code) oluşturabilirsiniz.
Bir sonraki yazımız da python ve OpenCV kullanarak QR kodları tanımlama ve içindeki bilgileri okuma işleminin nasıl yapılacağını anlatacağız.
Python programlama dilini öğrenemek isterseniz sitemizdeki Python derslerini takip edebilir, kendinizi geliştirmek içinde sitemizdeki 100 algoritma sorusunu konusunu inceleyebilirsiniz.
Yorumlarınızı bekliyoruz.

Merhaba.
Bu oluşan qr sabit kalarak eklediğimiz içeriği örnegin link vb. nasıl değiştirebiliriz. Bugun qr a google.com adresi ekledim oluşturdum fakat 1 ay sonra aynı qr a youtube linki eklemek istiyorum… gibi
Barkod içeriğe göre oluşturulduğunda değişiklik yapamazsınız. Yeni link için yeni barkod oluşturmanız gerekir. Ancak kod içinde google.com okuyunca youtube llinkine git gibi yönlendirme yapabilirsiniz.
[…] benzer olarak QRCode (karekod) oluşturma ve karekod okuma uygulamaları nasıl yapılacağını anlatan yazılarımızı da […]