5 puan yazan GN⁺ 2024-11-19 | 1 yorum | WhatsApp'ta paylaş

QR kodu oluşturma süreci adım adım

Bu JavaScript demo uygulaması, bir metin dizisinin QR kod barkod sembolüne nasıl kodlandığını ayrıntılı biçimde görselleştirir. Bu sayfanın içeriği, QR kod oluşturucu kütüphanesinin dahili olarak nasıl çalıştığını açıklar ve gerekçelendirir.

Kullanıcı girdisi

  • Metin dizisi: "Hello world"
  • Hata düzeltme seviyesi: düşük, orta, çeyreklik, yüksek
  • Minimum sürümü zorlama: 1 ile 40 arası
  • Maske desenini zorlama: otomatik(-1) veya manuel(0 ile 7 arası)

QR kod çıktısı

Adım adım süreç

0. Unicode karakter analizi

  • Girilen metin dizisinin kod noktası sayısı: 17
  • Her karakterin ayrıntıları:
    • İndeks, karakter, Unicode kod noktası, sayısal mod, alfabetik mod, bayt modu, Kanji modunda kodlanabilir olup olmadığı

1. Veri segmenti oluşturma

  • Her karakteri bitlere dönüştürme
  • Bayt modunda karakterler 8, 16, 24, 32 bit üretir
  • Oluşturulan tek segment:
    • Mod: bayt
    • Adet: 17 bayt
    • Veri: 136 bit uzunluğunda

2. Sürüm numarasına sığdırma

  • Segment listesini temsil etmek için gereken toplam bit uzunluğu
  • Sürüm ve hata düzeltme seviyesine göre QR kod veri codeword kapasitesi

3. Segmentleri birleştirme, dolgu ekleme ve codeword oluşturma

  • Çeşitli bit dizilerini birleştirme
  • Segment modu, karakter sayısı, veri, sonlandırıcı, bit dolgusu, bayt dolgusu

4. Bloklara ayırma, ECC ekleme ve iç içe geçirme

  • Tüm bloklar için istatistikler
  • Veri codeword'lerini kısa ve uzun bloklara ayırdıktan sonra ECC codeword'lerini hesaplama ve ekleme

5. Sabit desenleri çizme

  • Yatay ve dikey zamanlama desenlerini çizme
  • Üç köşeye bulucu desenleri çizme
  • Hizalama desenleri ızgarasını çizme
  • Geçici biçim bitlerini çizme
  • Sürüm bilgisi bloklarını çizme

6. Codeword'leri ve kalanları çizme

  • Tüm doldurulmamış modülleri ziyaret etmek için zikzak taramayı hesaplama
  • Veri/ECC modüllerini zikzak tarama sırasına ve codeword'lerin bit değerlerine göre çizme

7. Her maskeyi uygulamayı deneme

  • Maske desenini uygulama
  • Veri, ECC ve kalan modüllere maske XOR uygulama
  • Gerçek biçim bitlerini çizme

8. Ceza desenlerini bulma

  • Aynı renkte yatay ve dikey modül dizileri
  • 2×2 aynı renkte modül kutuları
  • Yatay ve dikey bulucu desenleri
  • Koyu/açık modüllerin dengesi

9. Ceza puanlarını hesaplama, en iyi maskeyi seçme

  • Ceza puanlarının nasıl hesaplandığı
  • En düşük toplam ceza puanı: maske deseni 3

Ek bilgiler

  • QR kod tasarımına dair Wikipedia ve diğer kaynaklara bağlantılar sunulur

Bu web uygulamasının kaynak TypeScript kodu ve derlenmiş JavaScript kodu görüntülenebilir.

1 yorum

 
GN⁺ 2024-11-19
Hacker News yorumu
  • QR kodlarıyla ilgili çevrimiçi anlatımlarda Reed-Solomon hata kodu hesaplamasının sık sık atlanması üzücü

    • Yazar bunu "uzun, sıkıcı ve ilgi çekici değil" diye açıklıyor
    • Bu yüzden ilgili bilgiyi bulmak zorlaşıyor
  • Veritasium'un QR kodlarıyla ilgili "I used to hate QR codes. But they're actually genius" adlı bir videosu var

  • Yazarın aldığı geri bildirimler eğlenceli

  • QR kod çözücü hakkında da benzer bir açıklama görmek isterdim

  • Rust ile QR kod uygulaması yapmıştım

  • Makale başlığında yılı etiketlemek iyi bir pratik (bu durumda 2018)

  • QR kodların nasıl çalıştığını öğrenmek uzun süredir yapılacaklar listemdeydi ve bu iyi bir giriş yazısıydı

  • Hızlıca bir QR kod oluşturmak istedim ama reklamlarla dolu siteler ve "kullanmak için kayıt ol" diyen siteler yüzünden zorlandım

    • GitHub'da birkaç tane buldum ama onların da başka sorunları vardı; bu yüzden daha önce kullandığım iyi tasarlanmış bir kütüphaneyi kullanarak kendim uyguladım
    • Yaklaşık 15 dakika sürdü
    • QR kod oluşturucu bağlantısı
  • Daha fazla seçenek eklenebilir ama çoğu kullanıcının buna ihtiyaç duymayacağını düşünüyorum

  • QR kodların nasıl çalıştığını artık bildiğimize göre bunu SQL sorgularında da kullanabiliriz