QR 코드 인식
스마트폰 카메라로 바로 찍거나 QR 이미지를 끌어오면(스크린샷 붙여넣기도 가능) 안의 URL·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 픽셀(약 1200만 화소)이 되는데 픽셀 단위로 스캔하면 메모리를 많이 쓰고 느려지면서 정확도 향상에는 거의 도움이 되지 않습니다. 성패를 좌우하는 것은 샘플링 후 QR 영역에 남는 픽셀 수입니다. 그래서 이 페이지는 먼저 최장변을 1600px로 줄여 인식하고, 이번 라운드에 읽지 못하면 원본 크기로 한 번 더 시도하며 두 번 실패해야만 '인식 실패'로 판정하고 실제 인식에 참여한 크기를 있는 그대로 표기합니다.
HEIC는 미지원입니다 — iPhone 기본 사진 형식으로 브라우저 자체가 디코딩할 수 없습니다. 먼저 이 사이트의 'HEIC를 JPG로' 도구(사진은 브라우저 내 로컬 처리, 업로드 없음)으로 JPG로 바꾼 뒤 이 페이지로 돌아오세요. 바코드(1차원 코드)도 미지원입니다: 부호 방식이 QR과 완전히 다르고 이 도구는 QR만 인식합니다. 그림에 둘 다 있으면 QR은 정상적으로 읽힙니다.
됩니다. 폰 시스템 브라우저로 이 페이지를 열고 '카메라 스캔 시작'을 누른 뒤 권한을 허용하고 QR을 향하면 자동 인식됩니다. 화면은 당신의 브라우저 안에서만 디코딩되고 업로드되지 않습니다. WeChat 내장 브라우저는 카메라 API를 제공하지 않으니 WeChat 안에서는 아래 스크린샷 붙여넣기를 쓰거나 시스템 브라우저로 다시 열어 주세요.
인식은 순수 로컬 과정입니다: 디코딩 라이브러리 jsQR은 이 사이트가 자체 호스팅하며 첫 스캔 시 한 번만 불러옵니다(약 250KB). 불러온 뒤 프레임별 디코딩은 화면 데이터를 일절 내보내지 않고, 스캔 중지나 페이지 이탈 시 카메라는 즉시 꺼집니다.