← Về trang chủ

Quét mã QR online — Camera trực tiếp + Upload ảnh

2 chế độ: quét QR realtime bằng camera điện thoại/laptop, hoặc upload ảnh chứa QR (PNG, JPG, screenshot). Tự nhận diện type: URL, WiFi, vCard, SMS, email. 100% client-side, không upload server.

📹 Camera live📤 Upload ảnhAuto-detectClient-side

Vì sao dùng công cụ này

📹
Camera trực tiếp

Bật camera điện thoại hoặc webcam laptop, đưa QR vào khung — phát hiện tự động trong <1 giây. Bộ chuyển camera trước/sau cho mobile.

📤
Upload ảnh QR

Drag-drop file ảnh hoặc click chọn. Dùng khi nhận QR qua chat/screenshot, hoặc decode QR cũ bị mờ mà camera fails.

🧠
Tự nhận diện type

URL hiện link clickable, WiFi hiện card SSID+pass, vCard hiện grid contact fields, SMS hiện phone+body riêng biệt.

🔒
100% riêng tư

Camera stream + ảnh đều xử lý bằng jsQR trong browser. Không upload server, không log, không bao giờ ghi lại nội dung QR.

Cách sử dụng

  1. 1Chọn chế độ: 'Camera trực tiếp' (nhanh nhất, dùng camera) hoặc 'Upload ảnh' (khi đã có file).
  2. 2Camera mode: bấm 'Bật camera' → cho phép truy cập camera khi trình duyệt hỏi → đưa QR vào khung scan ở giữa.
  3. 3Upload mode: drag ảnh QR vào ô upload, hoặc click để chọn file từ máy.
  4. 4Đợi 1-2 giây — jsQR decode trong Canvas browser. Khi tìm thấy QR, camera tự dừng.
  5. 5Xem kết quả: text raw + parsed card. Bấm Copy để chép, hoặc Open (nếu URL) để mở link.

QR Scanner ảnh là gì?

QR Scanner cho phép giải mã (decode) QR Code từ ảnh có sẵn — khác với camera scanner quét QR thật ngoài đời. Hữu ích khi bạn nhận screenshot QR qua chat (Zalo/Messenger), tải QR từ website, hoặc chụp QR từ poster nhưng không muốn dùng camera live.

Công cụ này dùng jsQR — thư viện open source mạnh nhất hiện tại cho QR decoding trong JavaScript, được dùng bởi nhiều app web hàng đầu. jsQR có thuật toán inversionAttempts giúp detect cả QR đảo màu (trắng trên đen) và QR low quality.

Toàn bộ pipeline (load ảnh → resize → ImageData → jsQR.decode) chạy 100% trong browser bằng Canvas API. Ảnh không bao giờ được upload lên bất kỳ server nào — đảm bảo privacy tuyệt đối cho QR chứa thông tin nhạy cảm (vCard, WiFi password).

  • Camera live: getUserMedia + jsQR realtime decode (~10fps)
  • Tự ưu tiên camera sau (back-facing) trên mobile
  • Bộ chuyển camera trước/sau khi có nhiều camera
  • Overlay khung scan + scan line animation
  • Upload ảnh: PNG, JPG, WEBP, SVG raster
  • Auto-resize ảnh lớn (≥1024px) để tăng tốc
  • Inversion attempts: nhận cả QR trắng-trên-đen (upload mode)
  • Parser tự động: URL, WiFi, vCard, SMS, mailto
  • 100% client-side — camera stream + ảnh không bao giờ upload

Khi nào cần QR Scanner?

QR trong screenshot

Bạn nhận QR qua Zalo/Messenger dưới dạng ảnh. Không cần in ra rồi quét lại — upload thẳng vào tool.

QR từ poster online

Save ảnh poster có QR từ Facebook → decode để xem dẫn về link nào trước khi mở (tránh phishing).

QR cũ không quét được

QR mờ/cũ/bị xước — upload ảnh vào tool, jsQR có thuật toán dung sai cao, có thể đọc được nơi camera fails.

QR trong PDF

Screenshot QR từ PDF tài liệu, đưa vào tool để extract URL/contact mà không cần in PDF ra giấy.

Audit QR campaign

Marketer kiểm tra QR trong campaign đối thủ: download ảnh, decode xem dẫn về landing page nào, UTM params gì.

Verify QR phishing

Email nghi ngờ chứa ảnh QR — decode xem URL trước khi quét/click, tránh trang lừa đảo.

Kỹ thuật decode QR từ ảnh

Pipeline: (1) Load ảnh qua URL.createObjectURL, (2) Draw lên Canvas + resize xuống ≤1024px (tăng tốc decode), (3) Lấy ImageData (Uint8ClampedArray RGBA), (4) Truyền vào jsQR(data, width, height, options) — output là object {data, location, version}.

jsQR dùng thuật toán Reed-Solomon decoder + finder pattern detection — chính là 3 ô vuông to ở 3 góc QR. Khi finder pattern bị crop/che, jsQR vẫn cố reconstruct dựa trên alignment pattern (ô vuông nhỏ).

Sau khi decode được raw text, parser của chúng tôi dùng prefix matching để nhận diện type: bắt đầu "http" → URL, "WIFI:" → WiFi, "BEGIN:VCARD" → vCard, "smsto:"/"sms:" → SMS, "mailto:" → email. Mỗi loại được parse thành object có cấu trúc để hiển thị card phù hợp.

Câu hỏi về QR Scanner

Decode QR mất bao lâu?

Thường <1 giây với ảnh ≤2MP. Ảnh lớn (>4MP) được auto-resize xuống 1024px trước khi decode → vẫn nhanh.

QR bị che 1 phần thì decode được không?

Có thể, nhờ error correction Reed-Solomon. Nếu QR được tạo với level H (30% redundancy), che tới ~30% diện tích vẫn decode được. Level L (7%) thì kém hơn.

Có giới hạn kích thước file upload?

Không giới hạn cứng — nhưng ảnh >10MB sẽ chậm load. Khuyến nghị PNG/JPG ≤5MB cho hiệu năng tốt nhất.

Hỗ trợ Data Matrix, Aztec, PDF417 không?

Không. Chỉ hỗ trợ QR Code (standard QR + Micro QR). Các loại 2D barcode khác cần thư viện chuyên biệt.

Có quét QR trực tiếp bằng camera điện thoại không?

Có. Chọn tab 'Camera trực tiếp' → bấm 'Bật camera' → cho phép truy cập camera. Trên mobile, camera sau (back) được ưu tiên. Nếu có nhiều camera, hiện nút 'Đổi camera' để switch trước/sau. Toàn bộ chạy bằng getUserMedia + jsQR trong browser, không có frame nào upload server.

Có lưu lịch sử QR đã quét không?

Không. Để bảo vệ privacy, công cụ không lưu bất cứ thứ gì sau khi bạn đóng tab. Nếu cần lưu, dùng Copy → paste vào notes của riêng bạn.