Apakah pembaca kod QR?
Kod QR ialah kod bar matriks dua dimensi yang ditakrifkan oleh ISO/IEC 18004. Ia mengekodkan teks, URL, kad kenalan, kelayakan Wi-Fi, dan muatan pendek lain sebagai grid modul kotak hitam-putih, bersama data pembetulan ralat Reed-Solomon supaya simbol masih boleh dinyahkod walaupun selepas kerosakan separa atau pertindihan logo. Pembaca kod QR melakukan sebaliknya: ia mengambil imej simbol QR dan memulihkan rentetan muatan asal. Pembaca ini menjalankan saluran paip nyahkod terus dalam pelayar anda menggunakan pustaka sumber terbuka jsQR (kira-kira 130 KB, berlesen MIT). Imej yang anda lepaskan, tampal, atau imbas dengan kamera tidak pernah meninggalkan tab. Tiada langkah muat naik. Buka DevTools semasa anda menyahkod dan panel Rangkaian kekal senyap — halaman tidak membuat XHR, fetch, atau suar analitik yang dikaitkan dengan kandungan imej anda.
Bagaimana penyahkodan QR berfungsi?
Penyahkodan berjalan sepenuhnya pada mesin anda. Setiap imej melalui saluran paip tetap sebelum teks muatan dikembalikan:
- Fail imej (PNG, JPG, WebP, atau bingkai kamera) dilukis ke atas HTML
<canvas>luar skrin. API kanvas mengembalikan data piksel mentah sebagai tatasusunan bait RGBA. - Pustaka jsQR menukar tatasusunan piksel kepada bitmap skala kelabu dan mengimbas untuk tiga petak corak pencari yang tersendiri di sudut simbol QR.
- Setelah corak pencari dijumpai, penyahkod mengira transformasi perspektif dan mengekstrak grid modul penuh, membaca setiap sel sebagai binari 0 atau 1.
- Grid modul dihurai mengikut spesifikasi QR: maklumat format dan versi dibaca dahulu, kemudian modul data dinyah-selingan dan pembetulan ralat Reed-Solomon diterapkan.
- Kod kata data yang diperbetulkan dinyahkod mengikut mod segmen (numerik, alfanumerik, bait, atau kanji), menghasilkan rentetan muatan asal.
- Alat ini kemudian menghidu muatan dengan set kecil ungkapan nalar untuk mengenal pasti jenis kandungan (URL, kelayakan Wi-Fi, vCard, dan sebagainya) dan memaparkan hasil dengan butang tindakan yang sesuai.
Mengapa menggunakan pembaca QR berasaskan pelayar?
- Bait imej tidak pernah meninggalkan peranti anda. Tampal QR yang menyembunyikan kata laluan Wi-Fi, URL pementasan dalaman, atau vCard dengan nombor telefon peribadi seseorang, dan kandungan itu kekal pada komputer riba anda. Pembaca QR lain menjalankan penyahkodan pada pelayan jauh dan meminta anda memuat naik imej dahulu — yang ini tidak.
- Setelah halaman dimuatkan, penyahkodan berfungsi luar talian. Pustaka jsQR hidup dalam tab anda. Anda boleh putuskan sambungan Wi-Fi, lepaskan imej QR ke dalam halaman, dan masih mendapat muatan kembali — berguna semasa penerbangan, di ruang bawah tanah, dan di mana-mana rangkaian korporat menyekat pengimbas pihak ketiga.
- Jika desktop atau komputer riba anda mempunyai kamera web, anda boleh menghalakannya ke kod QR yang dicetak dan membacanya tanpa memasang aplikasi atau membuka kunci telefon. Strim kamera kekal dalam pelayar dan berhenti sebaik sahaja kod dinyahkod.
- Pembaca mengenali URL, rentetan gabung Wi-Fi, vCard, MeCard, mailto, SMS, dan muatan geo serta memaparkan butang tindakan yang sepadan. Buka URL, salin kata laluan Wi-Fi, simpan kad kenalan — apa sahaja yang sebenarnya dikandungi QR.
Kegunaan biasa untuk pembaca kod QR
Bila-bila masa anda perlu melihat apa yang sebenarnya diperkatakan oleh kod QR tanpa menghala telefon ke arahnya:
- Menyahpepijat kod yang baru anda jana. Tampal QR yang dihasilkan oleh aplikasi anda (atau ambil tangkapan skrin dari Penjana Kod QR berdekatan) dan sahkan URL atau muatan yang dikodkan sepadan dengan yang anda maksudkan sebelum menghantarnya untuk dicetak, pembungkusan, atau poster.
- Memulihkan kelayakan Wi-Fi. Imbas QR Wi-Fi dari halaman konfigurasi penghala, kad selamat datang hotel, atau foto penyenaraian AirBnB dan pembaca mengembalikan SSID, jenis keselamatan, dan kata laluan sebagai teks biasa yang boleh anda salin ke peranti lain.
- Pengauditan dan kebolehcapaian. Nyahkod kod QR pada dokumen yang diimbas, label produk, lencana persidangan, atau tangkapan skrin siaran media sosial untuk mengekstrak kandungannya ke dalam hamparan, log pematuhan, atau perisian bantuan — berguna apabila URL destinasi adalah tuntutan sebenar yang sedang diaudit.
Bagaimana rupa penyahkodan kod QR sebenar?
Ambil kod QR Wi-Fi yang dicetak pada tingkap kedai kopi. Di sebalik simbol, muatan mentah mengikut skema URI WIFI:: WIFI:S:CafeGuest;T:WPA;P:espresso2026;H:false;;. Ambil gambar simbol, lepaskan imej ke dalam zon muat naik di atas, dan saluran paip mula berjalan: kanvas membaca piksel, jsQR mencari tiga corak pencari penjuru, transformasi perspektif meluruskan grid, Reed-Solomon membaiki kerosakan silau atau pemampatan, dan segmen mod bait menghasilkan rentetan URI. Pembaca kemudian menghidu awalan WIFI: dan melabel jenisnya sebagai Wi-Fi, menghurai nama rangkaian sebagai CafeGuest, jenis keselamatan sebagai WPA, dan kata laluan sebagai espresso2026. Butang Salin meletakkan kata laluan pada papan klip anda supaya anda boleh menempelkannya ke dalam pemilih rangkaian OS. Untuk URL biasa QR yang mengandungi https://tools.ultim8soft.com, saluran paip yang sama mengembalikan lencana jenis URL dan butang Buka yang menavigasi ke sasaran dalam tab baharu. Dalam kedua-dua kes, satu-satunya perkara yang berlaku pada rangkaian ialah muatan halaman itu sendiri — penyahkodan adalah setempat.
Pembaca kod QR ini dibina untuk satu tugas: tunjukkan kepada anda dengan tepat apa yang dikodkan oleh kod QR, dalam pelayar anda, tanpa pelayan di antaranya. Lepaskan imej, tampal dari papan klip, atau biarkan kamera web berjalan, dan kandungan yang dinyahkod bersama jenisnya muncul di skrin dalam kurang daripada sesaat. Bait imej tidak dimuat naik. Bingkai kamera tidak dirakam. Muatan yang dinyahkod tidak melalui log orang lain dalam perjalanan kembali kepada anda. Padankan dengan Penjana Kod QR berdekatan apabila anda memerlukan pengesahan pusingan penuh bahawa apa yang anda kodkan adalah apa yang orang lain akan lihat.
Adakah imej dimuat naik ke pelayan?
Tidak. Imej dilukis ke kanvas HTML dalam ingatan dan dinyahkod sepenuhnya oleh JavaScript sisi klien yang berjalan dalam tab anda. Tiada piksel imej anda pernah dihantar ke pelayan, dicatat, atau disimpan. Anda boleh mengesahkan ini dengan membuka DevTools dan menonton panel Rangkaian semasa anda melepaskan imej: tiada XHR, tiada fetch, tiada suar analitik yang dikaitkan dengan kandungan fail.
Bagaimana pengimbasan kamera berfungsi?
Apabila anda menghidupkan mod kamera, pelayar meminta kebenaran untuk mengakses kamera peranti anda melalui API getUserMedia piawai. Bingkai video ditangkap ke dalam kanvas luar skrin pada resolusi sehingga 640×480 dan diserahkan kepada jsQR untuk penyahkodan. Setiap bingkai dibuang sebaik sahaja bingkai seterusnya tiba, dan strim kamera dihentikan pada penyahkodan berjaya yang pertama. Tiada bingkai dirakam, tiada bingkai dihantar, dan gesaan kebenaran hanya muncul apabila anda menanda togol — bukan semasa muatan halaman.
Mengapa beberapa kandungan QR dikesan secara automatik sebagai Wi-Fi atau vCard?
Muatan QR untuk kelayakan Wi-Fi mengikut format WIFI:S:ssid;T:type;P:password;;, dan vCard bermula dengan BEGIN:VCARD. Pembaca ini mengenali corak tersebut bersama awalan piawai lain (mailto:, geo:, smsto:, MECARD:, https://) dan melabel jenis kandungan secara automatik supaya butang tindakan sepadan dengan apa yang sebenarnya ingin anda lakukan dengan muatan.
Mengapa kod QR saya tidak dapat diimbas?
Punca lazim: imej terlalu kecil atau resolusi rendah (kira-kira 100×100 px adalah had minimum, 300×300+ mengimbas dengan baik), simbol mengalami kerosakan teruk atau sebahagiannya diselaputi logo tanpa pembetulan ralat yang mencukupi, zon senyap (sempadan kosong di sekeliling modul) tiada atau terpotong, atau kontras antara modul gelap dan cerah terlalu rendah. Untuk mod kamera, baiki pencahayaan atau dekatkan kod ke kanta — jsQR perlu menyelesaikan modul individu dengan jelas untuk mengunci corak pencari.