二维码生成与识别
生成可加 App 图标的二维码,导出 PNG / SVG,并自动试扫确认能识别;也能识别图片、截图或摄像头里的二维码。全部在浏览器本地完成,不上传。
二维码和图标都在浏览器里生成,不会上传到服务器。
这个工具能做什么
做 App 推广时,下载二维码几乎是必备素材:官网落地页、海报、包装、活动易拉宝上都要放,很多团队还希望在二维码中间放上 App 图标,让用户一眼认出是哪个应用。问题是图标放大了容易扫不出来,换了颜色也可能识别失败,往往要等印出来才发现。我们做这个工具时,把“生成完先自己扫一遍”放进了流程:每次修改后,工具都会把导出的图片在本地用解码库试扫,分别在 512 和 256 像素下检查,并显示“可以识别”或给出警告。 生成部分支持网址、App Store / Google Play 链接(填数字 ID 或包名会自动拼成商店链接)、Wi-Fi 和任意文本(中文按 UTF-8 编码)。可以调容错级别、留白、前景和背景色(对比度过低或反色会提醒)、码点和定位框样式;上传 App 图标后会自动裁成圆角并加白色底板,容错自动升到 H,图标最大占 35%,避免遮住太多码点。导出 PNG 有 512、1024、2048 三种尺寸,也可以导出矢量 SVG 用于印刷。 识别部分可以点击上传、拖入或直接粘贴截图,也可以点按钮打开摄像头扫码。识别到网址时不会自动打开,而是先显示链接指向的域名并提示核对,避免误点钓鱼链接;Wi-Fi 二维码会解析出网络名和密码。图片和摄像头画面都只在浏览器里处理,不上传服务器。
使用步骤
- 在“生成二维码”里选择内容类型(网址、应用商店链接、Wi-Fi、文本)并填写内容,右侧实时显示二维码。
- 按需上传 App 图标、调整图标大小、颜色、码点样式和留白;看下方试扫结果,显示“可以识别”再导出。
- 导出 PNG(512 / 1024 / 2048)或 SVG。要识别二维码时切到“识别二维码”,上传、拖入、粘贴图片或打开摄像头。
常见问题
二维码中间放 App 图标,会不会扫不出来?
二维码自带纠错能力,最高的 H 级可以容忍约 30% 的码点损坏。加图标后工具会自动切到 H 级,图标默认占 28%、最大 35%,并隐藏图标下方的码点、加白色底板,让边缘更清楚。每次修改后工具都会在本地试扫,显示“可以识别”时一般主流扫码软件都能识别;如果提示失败,调小图标或换回方块码点即可。
“试扫”是怎么做的?可靠吗?
工具会把将要导出的二维码图片,在浏览器里分别按 512 和 256 像素渲染,再用开源的 jsQR 解码,并核对解出的内容和你输入的是否完全一致。两种尺寸都通过才显示“可以识别”。它能发现图标过大、对比度不足等常见问题,但不能代替实物测试;印刷前仍建议用手机实际扫一次。
应该导出 PNG 还是 SVG?多大合适?
网页、社交媒体用 PNG 1024 一般就够;海报、易拉宝和包装印刷建议用 SVG,无限放大不失真。印刷时二维码边长建议不小于 2 厘米,并在四周保留留白(静区),放在深色背景上更要留足。
可以改颜色吗?为什么提示对比度低?
可以。扫码器靠深浅差来识别码点,前景要明显比背景深。工具会计算对比度,低于 4:1 时提醒;前景比背景浅(反色)时也会提醒,因为不少扫码器不支持反色二维码。
识别时图片和摄像头画面会上传吗?
不会。图片读取和解码都在浏览器里完成;摄像头只有在你点击“用摄像头扫码”后才会请求权限,画面在本机逐帧识别,不录制、不上传,识别成功或切换页面时自动关闭。识别出的链接不会自动打开,会先显示域名请你核对。
用了哪些开源项目?许可如何?
二维码生成使用 qr-code-styling(MIT 许可),其中包含 Kazuhiko Arase 的 qrcode-generator(MIT);二维码识别使用 jsQR(Apache-2.0),浏览器支持时用系统自带的 BarcodeDetector 作为备用。均允许商用,许可全文见 /vendor/qr/LICENSES.txt。
相关文章和工具
更多工具见开发者工具箱;要做应用商店预览图,可以用App Store 截图生成器。