二维码加 Logo
把品牌标识放进二维码中间 · 默认最高纠错 · 生成后当场自检能不能扫出来
第一步:要写进二维码的内容
网址建议带上 https://;中文按 UTF-8 编码。内容越长,二维码格子越密,Logo 能占的比例就越小。
第二步:选一张 Logo(可跳过,跳过就是普通二维码)
推荐 PNG 透明底(不会出现白方块)。Logo 会等比缩放居中放进中间的正方形区域,四周可留一圈白边把码点隔开。
第三步:生成参数
印在海报、名片上的二维码建议不小于 512 像素,实际印刷尺寸别小于 2 厘米见方。
加 Logo 相当于故意遮挡一部分码点,靠的就是纠错能力;H 级能容忍最多遮挡,但同一张码能装的内容也最少。
规范要求四周各留 4 个模块,默认保留。做成 0 会让很多扫码器认不出边界。
深色码点 + 浅色背景最好读;对比度低于 3:1 时本页会提示。
预览、自检与下载
「检测能否扫出」会把当前这张图交给本地的识别库读一遍(第一次点会加载约 250KB 的识别组件), 读出来的内容与上面的原文一致才算通过。这一步同样在本机完成,图片不会被发送到任何地方。
二维码加 Logo 的原理:靠纠错码把挡住的格子补回来
为什么挡住中间还能扫出来。二维码不是把内容直接画成黑白格子,而是按 Reed-Solomon 纠错码编码:除了正文数据,还会额外写入一批校验码。扫码器读图时,即使有一部分模块读错或读不到,也能靠校验码把原始数据算回来——纠错的容忍比例就是 L 约 7%、M 约 15%、Q 约 25%、H 约 30%。中间压一个 Logo,本质上就是「故意读错」这一小块,只要遮挡比例不超过纠错能力,内容照样能被还原。所以加 Logo 的二维码必须选较高的纠错等级,本页默认就是最高的 H 级。
Logo 能放多大,取决于内容有多长。同一张二维码里,正文、纠错码、定位图案和格式信息要分同一块版面:内容越长,二维码版本越高、格子越多,中间那一小块相对占比就越小;反过来,内容很短时二维码格子少,同样像素大小的 Logo 遮挡的模块比例会明显变大。本页把 Logo 限制在边长的 10%~30%,超过 25% 会给出明确提示,并且提供「检测能否扫出」——真正该信的不是我们写的经验值,而是你自己这张图能不能被读出来。
不要碰三个角上的定位图案。二维码三个角上有回字形的定位图案(Finder Pattern),扫码器靠它们判断二维码的位置、角度和模块大小。把 Logo 放在正中不会碰到它们;如果自己排版时把图片压在角上,几乎必然扫不出来。这也是本页把 Logo 区域固定在中间、并允许你调整大小与留白的原因:留白(白边)可以在 Logo 与码点之间形成清晰边界,避免深色 Logo 与深色码点糊成一片,让二值化更干净。
本地生成,内容不出浏览器。二维码的生成只是一段确定的几何计算:数据编码、纠错、掩码、画格子,全部可以在浏览器里完成,不需要任何后端。本页的二维码由自托管的 qrcode-generator 生成,Logo 用 canvas 合成,自检用的识别库也是自托管的——整页没有上传接口,你可以打开开发者工具的 Network 面板核验。内容不写进网址、localStorage 或 cookie,关闭页面就什么都不剩;需要复用请自己保存下载的 PNG,它是静态图片,永久有效、不依赖服务器。
常见问题
关键看纠错等级与遮挡比例。二维码自带纠错能力(L 约 7%、M 约 15%、Q 约 25%、H 约 30%),本页默认用最高的 H 级并把 Logo 控制在 20% 以内,中间被挡住的一小块仍能被还原。生成后可以点「检测能否扫出」在本机先扫一次:能扫出来再下载,扫不出来就把 Logo 调小或把纠错等级调高。
不会。二维码三个角上有回字形的定位图案,本页把 Logo 限制在中间 10%~30% 的区域内,碰不到它们。但 Logo 越大遮挡的码点越多,超过 25% 时页面会明确提示风险,请以本机自检结果为准。
PNG 透明底效果最好(不会出现白方块盖住码点),JPG 也可以,页面会把图片等比缩放居中放到你设定的大小;可选加白色留白边框与圆角,让 Logo 与码点之间有清晰分界,识别更稳。
不会上传,也没有有效期一说:二维码是本地一次性算出来的静态图片,内容就写在图里,下载后永久有效,不依赖任何服务器,本页也不保存你的内容。