Считывание QR-кодов
Снимай камерой телефона или перетащи картинку (можно вставить скриншот): достанет ссылку, Wi-Fi, визитку или текст и отметит код на исходном изображении.
摄像头扫码(手机上推荐)
对准二维码即可自动识别,画面只在你浏览器里解码、不上传。微信内置浏览器不提供摄像头接口,在微信里请用下方的粘贴截图,或换系统浏览器打开本页。
调用手机系统相机拍一张,回来立刻在本机识别;任何浏览器和微信里都能用,照片不出设备。
把二维码图片拖到这里,或点击选择
支持 PNG / JPG / WebP,可多选(一次识别多张);也可以直接按 Ctrl+V 粘贴截图
图片只在本机解码,不会上传:二维码里可能写着你的 WiFi 密码或公司内部链接,本地识别才不会把它们发到别人的服务器上。
待识别的图片
二维码图片是怎么被「读」出来的?
二维码里存的其实是一串字节:黑白小方块叫「模块」,每一块代表 0 或 1。图片四周那圈更大的三个方形是定位图案,解码程序先找到它们,就能算出这张图有没有被旋转、拉斜,然后把网格对齐回标准的行列。接着读出版本号、纠错等级和掩码信息,按规则把掩码还原,最后按编码模式(数字 / 字母数字 / 字节 / 汉字)把比特流翻译回原始内容。所以你看到的「扫码结果」并不是图片里画着字,而是解出来的一段数据——它可能是网址,也可能是 WiFi 配置、联系人名片,甚至是一段二进制。
为什么有的二维码图片识别不了:最常见的是模糊——拍照手抖或对焦在别处,模块边缘糊成一片,定位图案还在但每个格子的明暗已经分不清了;其次是反光与遮挡,屏幕翻拍时一片高光会直接吃掉几十个模块,贴纸、水印压在二维码上同理;第三是太小,二维码在原图里可能只占 60×60 像素,而一个模块只分到 1~2 个像素,这时候把它裁出来放大反而更容易读(放大虽不增加信息,但能让采样落回模块中心);第四是静默区被裁掉了,二维码四周需要留白(通常 4 个模块宽),很多人在截图或抠图时贴着边缘裁,定位图案与背景的边界消失,解码器就找不到二维码了。另外还有一种常被误会的情况:那是一维条形码而不是二维码——条形码只有一排粗细不同的竖线,本工具只识别二维码。
截图识别是最高频的用法:在电脑上遇到「二维码图片」时,绝大多数场景就是你刚截的图——微信/QQ 截图、系统截图工具、网页上的二维码另存。这类图片往往清晰、没有透视变形,识别率极高。本页支持直接按 Ctrl+V 粘贴:截图后不用先存盘、不用再选文件,直接粘贴即可读出内容。如果二维码本身太小,可以先用Обрезка изображений把二维码区域裁出来(记得四周留一点白边),再粘贴或上传,成功率会明显上升;手机拍的大图也可以先压缩到合适体积再识别。
手机还能用摄像头直接扫:在系统浏览器里打开本页,点「开始摄像头扫码」,允许权限后对准二维码即可自动识别。页面按最长边 800 像素抽帧、用自托管的 jsQR 逐帧本地解码(这个分辨率下逐帧耗时足够低,扫码体验接近原生);视频画面不会上传到任何服务器,停止扫码或离开页面时摄像头立即关闭。微信内置浏览器不提供摄像头接口,那种情况下请用下方的粘贴截图,或换系统浏览器打开本页。
为什么识别必须在本地做:二维码承载的内容往往比一张普通图片敏感得多——家庭或办公室的 WIFI: 二维码里直接写着 SSID 和密码,很多人的做法是把它打印出来贴在墙上或存进相册;企业内部二维码可能指向内网地址、带签名参数的临时链接、含手机号的加好友链接。如果把这些图片上传到「在线解码」服务器,等于把 WiFi 密码和内部链接原样交出去,而且很多站点会留存上传文件与识别记录。本页的解码完全在你的浏览器里完成(用的是本地加载的 jsQR 解码库),图片识别与摄像头扫码两条路都不会发出任何文件上传请求——你可以打开开发者工具的 Network 面板,把图片拖进来或开摄像头,看是否出现新的上传请求。
Частые вопросы
Проверяйте в таком порядке — обычно помогает шаг второй: ① убедитесь, что на изображении действительно QR-код (а не штрихкод) и он не крошечный (в десятки пикселей); ② инструментом «обрезка изображения» вырежьте QR с небольшой белой рамкой вокруг (тихая зона, обычно 4 модуля шириной) — не режьте впритык к краю; ③ возьмите изображение чётче — блики при съёмке экрана, дисторсия объектива и дрожание рук размывают границы модулей; ④ если код наклеен на изогнутую кружку или согнутую визитку — переснимите строго спереди. Сначала страница пробует распознать версию, проременную до 1600px по длинной стороне; при неудаче повторяет в исходном размере, и только после двух попыток сообщает «не распознано».
Кликнуть можно, но сначала посмотрите на домен: ссылку даёт QR-код, поэтому проверяйте источник перед открытием. QR-код может сгенерировать кто угодно, и на стендах в общественных местах встречаются ссылки на поддельные страницы входа, фишинговые сайты и страницы под видом «аутентификации WiFi». Этот инструмент лишь честно считывает содержимое — безопасность он не оценивает и автоматически не переходит автоматически.
Да. Кроме выбора файла можно просто нажать Ctrl+V и вставить скриншот — самый удобный способ прочитать QR-код прямо с экрана.
Могут. Формат кода, который генерирует телефон для общего доступа: WIFI:T:WPA;S=сеть;P=пароль;;, и страница разбирает его на имя сети, тип шифрования и пароль, показывая по отдельности. Учтите, что пароль здесь открытым текстом — одна из причин, почему мы настаиваем на локальной обработке: если вам просто нужно узнать, «к какой WiFi подключена эта наклейка», незачем загружать пароль ни на какой сервер.
Смартфонные снимки легко достигают 4000×3000 пикселей (около 12 Мп); сканировать их попиксельно — много памяти и медленно, а точности это почти не добавляет: успех решает, сколько пикселей останется на области QR после прореживания. Поэтому страница сначала уменьшает длинную сторону до 1600px и распознаёт эту версию; если содержимое не прочитано, повторяет один раз в исходном размере, и только после двух неудач сообщает «не распознано», честно указывая размер, который реально участвовал в распознавании.
HEIC не поддерживается — это формат фото по умолчанию на iPhone, а браузеры его не декодируют. Сначала сконвертируйте его нашим инструментом «HEIC в JPG» (фото обрабатываются локально в браузере, без загрузки) и вернитесь сюда. Штрихкоды (линейные) тоже не поддерживаются: их кодирование совершенно иное, а этот инструмент читает только QR-коды. Если на изображении есть и то и другое, QR-код будет прочитан штатно.
Да. Откройте страницу в системном браузере телефона, нажмите «Запустить сканирование камерой», разрешите доступ и наведите на код — распознавание идёт автоматически, кадры декодируются только в вашем браузере и никуда не загружаются. Встроенный браузер WeChat не предоставляет API камеры: внутри WeChat используйте вставку скриншота ниже либо откройте страницу в системном браузере.
Распознавание — чисто локальный процесс: библиотека декодирования jsQR размещена у нас на сайте и загружается один раз при первом сканировании (около 250KB); после загрузки покадровое декодирование не отправляет никаких данных изображения, а камера немедленно выключается при остановке сканирования или уходе со страницы.