条码扫描与解码
使用相机或上传图片读取 UPC、EAN、Code 128、Code 39、ITF 和 Codabar —— 快速、私密且免费。也可读取 QR 码。
扫描器与解码器
解码结果
尚无结果。请使用“扫描”或上传图片。
将任何笔记本或手机变成强大的条码阅读器。本工具使用两种客户端引擎解码常见的零售与物流条码:在可用时优先使用 Shape Detection API(在许多设备上有硬件加速),在回退时使用改进后的 ZXing 解码器。不会上传任何内容——检测和解码全部在您的浏览器本地运行,以保证速度和隐私。
相机与图像解码如何工作
- 帧捕获: 当您按下“扫描”时,应用会从实时相机流中采样一帧(或使用您上传的图像)。
- 检测: 我们首先尝试使用 Shape Detection API(BarcodeDetector)进行快速的本地检测。如果不受支持或未检测到内容,则回退到为 Web 编译的 ZXing。
- 解码: 对检测到的区域进行处理以恢复编码的数据(UPC/EAN 数字、Code 128/39 文本等)。
- 结果: 解码后的负载和格式会显示在预览下方。您可以立即复制文本。
- 隐私: 所有处理均在本地进行——相机帧和上传的图像不会离开您的设备。
支持的条码格式
格式 | 类型 | 典型用途 |
---|---|---|
EAN-13 / EAN-8 | 1D | 欧盟及多个地区的零售商品 |
UPC-A / UPC-E | 1D | 北美的零售商品 |
Code 128 | 1D | 物流、运输标签、库存编号 |
Code 39 | 1D | 制造业、资产标签、简单的字母数字信息 |
Interleaved 2 of 5 (ITF) | 1D | 纸箱、托盘、配送 |
Codabar | 1D | 图书馆、血库、旧系统 |
QR Code | 2D | URL、票券、支付、设备配对 |
相机扫描提示
- 照亮条码,而非镜头: 使用来自侧面的明亮且漫射的光线以避免眩光和反射。倾斜光亮的标签或移动光源以防止曝光过度。
- 需要时使用手电筒: 在光线不足的手机上启用闪光灯。稍微倾斜设备以减少眩光。
- 保持合适距离: 靠近直到条码占视野的 60–80%。太远像素不足;太近会导致对焦不良。
- 对焦与曝光: 轻点条码以对焦/自动曝光。许多手机可长按锁定 AE/AF(自动曝光/自动对焦)。
- 1D 码方向很重要: 旋转使条纹水平横跨屏幕。如果检测困难,试试旋转 90° 或 180°。
- 保持稳定: 靠肘支撑、放在表面上或用双手握持。半秒的暂停有助于提高结果。
- 注意静区(quiet zone): 在条码周围留出薄薄的白色边缘——不要把裁剪紧贴到条纹上。
- 减少倾斜与弯曲: 保持条码平整且相机与之平行。对于弯曲的标签,后退以减少变形,然后再裁剪更紧。
- 优先使用主摄: 避免用超广角镜头拍摄小条码;使用主摄(1×)或长焦镜头。
- 避免会改变图像的模式: 禁用人像、美颜、HDR 或会引起模糊的运动模式,这些模式可能会软化细小条纹。
- 清洁镜头: 指纹和灰尘会降低清晰度和对比度。
- 针对 QR 码: 保持整个方形(包括静区)可见并尽量平直;避免只拍到定位角的部分裁剪。
上传图片以获得最佳结果
- 使用合适的格式: PNG 可保留清晰的边缘;高质量(≥ 85)JPEG 也适合。将 HEIC/HEIF 转换为 PNG 或 JPEG 再上传。
- 分辨率很重要: 小标签:≥ 1000×1000 px。较大码:≥ 600×600 px。避免数码变焦——靠近并裁剪。
- 保持清晰: 支撑手机、点按对焦并暂停。运动模糊会破坏细条纹和 QR 单元。
- 带静区裁剪: 围绕条码裁剪,但保留薄薄的白色边缘;不要裁入条纹/模块中。
- 修正方向: 如果图像是横向/倒置,请先旋转——EXIF 方向信息并非总被遵循。
- 控制光线: 使用明亮且漫射的光线;稍微倾斜以将眩光移出光滑标签表面。
- 提高对比度(如有需要): 转为灰度并提高对比度。避免使用会模糊边缘的重滤镜或降噪处理。
- 拉平并去畸变: 对于弯曲的包装,后退、使条码正对相机,然后再裁剪更紧。
- 一次一个条码: 如果照片中有多个条码,请裁剪到单个目标条码。
- 保留原始文件: 上传原始文件。消息应用通常会压缩并引入伪影。
- 来自屏幕: 优先使用直接截图。如果拍摄显示屏,稍微降低亮度以减少条纹(banding)。
- 尝试其他设备或镜头: 使用主摄(1×)以获得最佳细节;超广角可能降低可解码性。
解码失败的故障排查
- 确认条码类型: 支持:EAN-13/8、UPC-A/E、Code 128、Code 39、ITF、Codabar 与 QR。不支持:Data Matrix、PDF417。
- 尝试不同方向: 按 90° 步进旋转条码或设备。对于 1D 条码,水平条纹最容易读取。
- 更聪明地裁剪: 围绕条码裁剪,同时保留薄薄的白色静区。不要裁进条纹中。
- 提高对比度: 改善光线、避免眩光,目标为深色条纹配浅色背景;对于上传图像,可尝试灰度并提高对比度。
- 注意颜色反转: 如果条纹为浅色配深色背景,请在更亮的光线下重新拍摄或在上传前反转颜色。
- 增加可用分辨率: 靠近拍摄、使用更高分辨率的照片,或换用更好的相机。
- 减少倾斜/弯曲: 拉平标签,使相机与条码成正面角度,或后退再裁剪更紧。
- 检查打印质量和静区: 污迹、划痕或缺失的静区会导致无法解码。尝试更干净的样本。
- 在相关情况下验证数据规则: 某些格式有约束(例如 ITF 要偶数位;Code 39 字符集有限)。确认条码符合其规范。
- 设备/浏览器差异: 尝试其他设备或浏览器。启用手电筒;点按对焦并保持稳定。
- 图像上传——方向/处理: 在上传前旋转横向照片。避免使用重滤镜或降噪处理。
- 仍然无法识别? 尝试更紧的裁剪、更好的光线和第二台设备。条码可能损坏或不受支持。
隐私与本地处理
此扫描器完全在您的浏览器中运行:相机帧和上传的图像不会离开您的设备。立即使用——无需注册且无跟踪像素。初次加载后,许多浏览器即使在网络不稳定或离线时也能运行此工具。