IMG.DIY / 更多工具 / 二维码识别

二维码识别

从截图或照片里读出二维码的内容——本地识别,不上传。

二维码识别 visual example
隐私优先:任何文件都不会被上传。

从原图到结果,一眼看懂

选择文件、完成处理、下载结果。全部在浏览器本地完成。

二维码识别: 1 · 选择原图
1 · 选择原图
二维码识别: 2 · 调整与处理
2 · 调整与处理
二维码识别: 3 · 下载结果
3 · 下载结果

二维码在截图、PDF 或照片里,手边又没有第二部手机来扫?把图片拖进来,这个识别器当场解码,显示它编码的确切文本或链接。

图片完全在你的浏览器里处理——不上传、不用摄像头权限、不用装 App。如果内容是链接,会显示成可点击的结果,但除非你主动点,什么都不会打开或联网。

使用方法

  1. 添加图片拖入、粘贴或选择一张含二维码的截图或照片。
  2. 查看结果识别出的文本立即显示;若是网址,会给出链接。
  3. 复制或打开一键复制文本,或在你信任时点开链接。

二维码本身就是一张图,而这张图往往已经躺在你平时用来扫码的那台设备上——聊天里的一张截图、PDF 票据上的码、你自己笔记本上那块'扫码连接'的 Wi-Fi 面板。这个识别工具接收这张图,把里面的码解出来,你就不用再抓第二台手机,也不用把一块屏举到另一块屏前面。把文件拖进来、从剪贴板粘进来,或者从相册里挑一张,码里的文字马上就出现。

一切都在你的浏览器里发生。图片被画到 canvas 上,用 jsQR 库当场解码——什么都不上传,没有账号,而且页面加载完之后断网也照样能用。这一点很重要,因为二维码装的可能不止是链接:Wi-Fi 密码、私密网址、登录令牌、一张名片。如果解出来的文字是网址,你会得到一个可点的链接;否则就给你原始文字加一个复制按钮。它一张图读一个码,从文件读而不走实时摄像头——这是为了把整件事留在你设备上而做的刻意取舍。

大家都用它来做什么

读酒店或路由器截图里的 Wi-Fi 二维码,不用第二台手机

在同一台笔记本上看 PDF 票据时,打开票据上二维码里的链接

解开 App 配置时你自己屏幕上显示的'扫码连接'的码

把别人发来的名片(vCard)二维码里的联系人信息取出来

先读出网址,在访问前确认这个二维码指向哪里

打印的原件没了,从存下的旧照片里把二维码的文字救回来

二维码就卡在你正看着的这块屏幕上

有个场景几乎人人都遇到过。朋友把 Wi-Fi 二维码当截图发给你;一张 PDF 票据上有个要打开的二维码;某个 App 在你笔记本上显示"扫码配对"的码。尴尬的地方在于——这个码就在你平时用来扫码的那台设备上:显示截图的手机没法用自己的摄像头拍自己,而为了读一张已经躺在文件里的码,再举起第二台手机对着屏幕拍,实在有点荒唐。图你已经有了,你要的只是里面那段文字。

这个工具补的正是这个缺口。你把一张含二维码的图片文件拖进来、粘进来或选进来——截图、导出的图、照片都行——它就地把码解出来,把里面的文字显示给你。如果那段文字是网址,你会得到一个可点的链接(带 rel=nofollow);否则就给你原始内容加一个复制按钮。不用第二台设备,不用来回折腾。

为什么这种情况下"从图片解"比摄像头强

大多数"二维码扫描"页面都默认你有一个实时摄像头、面前有一张实体码。可当码本身已经是一个文件时,这个前提就错了。调用摄像头意味着要请求相机权限、对着屏幕拍(屏幕对屏幕会有反光和摩尔纹,识别很不稳),而且你首先得有另一块屏来显示这个码。当二维码是一张截图或一页 PDF 时,根本没有实体码可拍。

这个工具刻意从你提供的图片里读,而不是走实时摄像头。这是个实打实的取舍,说清楚:它不会打开你的摄像头去扫你手里举着的码。如果你面前是海报或包装上的实体码,手机自带的相机 App 更快。但对于最常见的情况——一张已经在你设备上的图片码——从文件里读既更简单,又完全在本地完成。

大多数网站避而不谈的隐私问题

二维码不总是一条无害的链接。它可能编码着 Wi-Fi 名称和密码、一个私密会议网址、一个一次性登录令牌、一段支付字符串、一张带着别人电话和地址的名片。当你在某个普通的在线"二维码识别"站上去解这类码时,你其实是把图片上传到了一台你控制不了的服务器——连同码里藏着的那个秘密一起上传了。对于一个 Wi-Fi 密码或一条登录链接,那真的不是该送去的地方。

这个工具把你的图片画到 canvas 上,用 jsQR 库完全在你的浏览器里解码。什么都不上传,没有账号也没有后端,而且页面加载完之后可以离线用——你真的可以关掉 Wi-Fi,它照样能解。码里的文字始终不出你这台机器,对于一个可能是密码的东西来说,这是唯一说得通的默认做法。

怎样解得干净利落

工具会把大图缩到约 1600px 以加快速度,并自动同时尝试正常和反色的码(inversionAttempts: 'attemptBoth'),所以浅色底深色码这类也能读。碰上顽固的码,几个实用习惯能帮上忙:

  • 裁近一点。 如果二维码只是大截图里的一个小方块,把它裁到占据大部分画面。淹没在大图里的小码是最常见的失败原因。
  • 保证对比度。 浅底深码读得最好。对比度很低、发灰发白的码更难认。
  • 别让它反光。 拍照拍的码,避开反光,均匀光线比一块横在图案上的高光亮斑要好。
  • 一图一码。 工具一张图解一个二维码;如果一张图里有好几个,裁到你要的那一个。

诚实地说清限制:它是基于图片的,不是实时摄像头,而且一次只读一个码。非常小、很糊或高度花哨美化过的码,即便裁好了也偶尔会解不出。跟那些要上传图片才能读的在线识别站相比,你做的取舍很清楚——这个工具把图片、连同它编码的东西,都留在你自己的设备上。

为什么选 IMG.DIY

任意图片

截图、照片、导出的图形都行。

即时

在你设备上解码,不用摄像头。

识别链接

网址变成可点击结果。

隐私安全

图片绝不上传。

常见问题

能用摄像头扫吗?
这个工具从你提供的图片文件里读——这样才能完全本地、无需权限。给二维码拍张照或截个图拖进来即可。
为什么提示没找到二维码?
可能码在图里太小、太糊或对比太低。裁得离码更近、换张更清晰的图再试。
彩色或带 Logo 的二维码能识别吗?
一般可以,只要模块之间对比清晰。过度美化的码偶尔会失败。
识别时会上传图片吗?
不会。解码用本地库在你的浏览器里完成,图片留在你的设备上。
它能读带二维码的 PDF 吗?
不能直接读 PDF,给它一张图片就行。把带码的那部分页面截个图,或者把那一页导出成图片,再把图片丢进来。加载前裁到贴近码,解得最干净。
图里有好几个二维码,它会全读吗?
它一张图解一个码。如果一张图里有多个码,把图裁到只剩你要的那一个再解,然后对下一个重复。这样每次识别都不会含糊。
能解我自己生成的二维码,检查对不对吗?
能。把你生成的码存成或截成图片,加载进来,你就能看到它到底编码了什么文字——在打印或发出去之前,这是确认码指向没错的快捷办法。
有办法一次批量解一堆码图吗?
没有,设计上就是一次一张——工具在你浏览器里本地解码,没有队列也没有服务器。几张码很快;真要大批量,你会需要专门的脚本,但那样一来你的图片通常就得离开你的设备了。

相关工具

相关教程