二维码解析
二维码从上传的图片中读取二维码并复制其解码文本。
本页内容
什么是二维码解码器?#
二维码解码器做的是生成器的反面:你给它一张含二维码的图片,它把图片里编码的文字还给你。指一张支付二维码的截图、一张餐厅菜单贴纸的照片、一张保存的活动门票图,它就能读出当初烤进那块矩阵里的网址、WiFi 串、名片或纯文本。
底层逻辑上,解码器要的是像素,不是图片文件。这一页把你上传的图片画到浏览器内的画布上,读出原始 RGBA 像素缓冲,再把它交给解码库——库会走过整个矩阵(找到三个角的定位图案、对齐网格、逐个读出模块),重建出原始字节流。因为这个字节流是 UTF-8 的,所以解码出来的文字跟当初编码进去的一模一样,包括非拉丁字母和 emoji。
全部在浏览器里发生。图片在本地画布上处理,绝不上传到服务器,所以一个装着 WiFi 密码、私有网址或个人联系方式的二维码能保持私密。
怎么使用#
- 把图片拖到左侧那个虚线的 拖放区,或点 上传 选一个文件。PNG、JPEG 以及浏览器支持的其他图片格式都行。
- 拖放区下方会出现这张图的缩略图,方便你确认加载对了。
- 解码出来的文字立刻出现在右侧的 输出 框里。
- 点 复制 复制解码文字,或 清除 移除图片重来。
- 状态栏报告结果:解码成功、没找到二维码、或文件不是可用的图片而报错。
如果解码器找不到二维码,会诚实地报 not-found——常见原因见下面的常见问题。
主要特性#
- 图进、文字出。 不用摄像头、不用对准等待——加载任意已保存的图片,一趟就把文字读出来。
- 浏览器能读的格式都支持。 PNG、JPEG、GIF、WebP、BMP——只要浏览器能解码这个文件,工具就能把它画到画布上读出二维码。
- UTF-8 忠实。 解码文字原样保留非拉丁字母和符号,所以中文、阿拉伯文、emoji 和混排内容都能完整回来。
- 与生成器可往返。 用
/zh-CN/qr/generate/工具生成的二维码,在这里能解码回一字不差的原文——适合核验你造的码到底装的是不是你想装的内容。 - 保持私密。 图片画到本地画布、像素在本页内解码,不上传任何东西,所以敏感二维码(私有 WiFi、个人联系方式)绝不离开你的设备。
- 诚实的失败信息。 非图片文件或残缺缓冲会清楚报出来,而”没找到二维码”和”图片读不了”是分开的两种情况,让你知道该修什么。
实例演示#
最可靠的测试是走一个往返。先用配套的生成器工具生成一个二维码——比如编码网址 https://example.com——下载那张 PNG。然后回到这一页,把那张 PNG 拖到拖放区,输出框读出:
https://example.com
解码出来的文字跟当初编码进去的字节完全一致。同样的往返对 WiFi 串也成立:
WIFI:T:WPA;S:HomeNetwork;P:supersecret;;
它还能处理二维码的照片,不只是干净的渲染图:用手机拍一张印刷菜单贴纸,把那张 JPEG 传到这里,解码器读出的网址,跟你直接拿手机扫那张贴纸读出的一样。三个角上的定位图案,正是让解码库能在一张任意照片里找到并对齐矩阵的关键。
常见问题#
提示”没找到二维码”,是哪里出了问题?#
通常是四种情况之一:图片太糊或分辨率太低,模块分不开;二维码被部分裁掉或旋转了,三个角的定位图案没法全部找到;码没有静区(周围那圈白边),边界跟背景糊在一起;或者你传的根本不是二维码——比如一维条码,那要换 /zh-CN/qr/barcode/ 工具。试试更清晰、裁剪更好、带一圈清楚白边的图。
它能读手机拍的照片吗,还是只能读干净的截图?#
都行。解码器靠三个角的定位图案定位二维码,并据此对齐网格,所以能容忍旋转、透视和一定程度的模糊。干净的截图是最容易的情况;印刷码的一张相当清晰的手机照片也行。极暗、强反光,或者码在图里只有几十像素宽,才是它开始失败的地方。
能上传哪些图片格式?#
浏览器能解码的都行:PNG、JPEG、GIF、WebP、BMP 之类。动态 GIF 取第一帧。如果文件根本不是图片或已损坏,工具会报”读不了”,而不是装作解码出了个空结果。
图片或解码出来的文字会被发到什么地方吗?#
不会。图片画到浏览器内的画布上,像素缓冲由一个跟页面打包在一起的库在本地解码。图片和它里面的文字都不上传——没有后端。所以这个工具用来处理装着 WiFi 密码、支付详情或个人联系方式的二维码是安全的。
它能解码 Data Matrix 之类的其他二维码吗?#
这个工具不行——它专门解码标准二维码。Data Matrix(物流和电子元器件上常见)要走 /zh-CN/qr/data-matrix/;零售一维条码(EAN、UPC、Code128)要用 /zh-CN/qr/barcode/ 工具。它们看起来有点像,但矩阵形状和解码算法不同。