QR kodu adım adım nasıl oluşturulur
(nayuki.io)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
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ü
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
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