Go工具集

二维码生成

二维码

二维码(QR Code,全称Quick Response Code)是一种用黑白方块矩阵表示信息的二维条码技术,其核心是通过图形编码存储数据并实现快速读取。最多可存储7089个数字或4296个字母。

基本结构

  • 定位标记:三个角落的“回”字形方块,用于扫描时定位方向。
  • 对齐标记(可选):小型方块,帮助校正图形变形。
  • 数据区:黑白模块组成的矩阵,存储二进制数据。
  • 纠错码:通过算法(如Reed-Solomon)生成的冗余数据,即使部分损坏也能恢复信息。

编码过程

  • 数据转换:将文本、链接等转换为二进制。
  • 模式标识:定义数据类型(如数字、字母、汉字等)。
  • 纠错编码:根据容错级别(L/M/Q/H)添加纠错码,容错率可达7%~30%。
  • 矩阵排列:按规则填充数据块,生成最终的二维码图形。

条形码

条形码(Barcode)是一种通过黑白条纹(或彩色条纹)的排列组合来编码信息的图形标识技术,广泛用于商品管理、物流追踪等领域。

基本结构

  • 黑白条纹:通过不同宽度的条纹和间隔表示数据(如数字、字母)。
  • 起始符/终止符:标识条形码的开头和结尾(例如 | 符号)。
  • 校验位:用于验证数据准确性(如 UPC 码的最后一位)。

编码规则

  • 二进制编码:条纹宽度对应二进制的“0”和“1”。例如:
    • 窄条纹代表“0”,宽条纹代表“1”(具体规则因编码标准而异)。
  • 编码标准:
    • UPC(通用商品码):12 位数字,用于零售商品(如超市商品)。
    • EAN(欧洲商品码):13 位数字,国际通用。
    • Code 128:支持字母和符号,用于物流、仓储。
    • ISBN:国际标准书号(图书专用)。

扫描原理

  • 光电传感器:扫描仪发射光线,通过反射光强度差异识别黑白条纹。
  • 信号转换:条纹反射的光信号转换为电信号,再解码为数字或字符。
  • 单向读取:通常只能水平方向扫描(与二维码的二维结构不同)。

局限性

  • 容量有限:最多支持80个字符。
  • 依赖清晰度:污损或打印模糊可能导致读取失败。
  • 无纠错能力:无法像二维码通过算法恢复数据。
Web Analytics Made Easy - Statcounter