当前位置: 首页 > news >正文

二维码QRCode的属性

TQRCode组件生成二维码的核心属性配置,TQRCode是 Delphi 中常用的二维码生成组件(多为第三方 / QRCode 库封装),以下逐一解析每个属性的功能、取值规则和实际应用场景:

一、核心属性解析

属性名代码赋值功能详解取值 / 注意事项
Eclevel1纠错级别(Error Correction Level)决定二维码容忍污损 / 遮挡的能力,级别越高容错越强(但二维码密度越大)。取值 0-4(对应 QRCode 标准的 4 个级别):0 = L 级(7% 容错)1 = M 级(15% 容错,最常用)2 = Q 级(25% 容错)3 = H 级(30% 容错)(注:代码中注释 “0-4” 是组件封装的简化,标准仅 0-3,4 为组件兼容值,等价 3)
Pxmag4像素倍率(Pixel Magnification)/ 模块尺寸QRCode 的最小单元是 “模块(Module)”(黑白小方块),Pxmag表示每个模块占用的像素数。取值为正整数(如 2/4/8):值越大,二维码整体尺寸越大(例:Pxmag=4 → 每个模块 4×4 像素);需根据显示 / 打印需求调整(打印选 4-8,屏幕显示选 2-4)。
Versionstrtoint(edit1.Text)二维码版本号QRCode 分为 1-40 个版本,版本越高可存储的内容越多,二维码尺寸(模块数)越大。取值 1-40:版本 1 = 21×21 模块版本 2 = 25×25 模块...版本 40 = 177×177 模块(组件会自动适配:若内容超版本容量,可能报错 / 自动升级版本)
SymbolPicturepicBMP二维码输出载体指定生成的二维码图像绘制到哪个TPicture对象中(如TImagePicture属性)。赋值为TPicture/TBitmap实例(如Image1.Picture),生成后可直接显示 / 保存。
Matchtrue尺寸匹配 / 自适应强制二维码图像尺寸与SymbolPicture的画布尺寸匹配(拉伸 / 缩放)。true:二维码自动缩放至SymbolPicture的尺寸;false:按Pxmag×版本模块数生成原始尺寸,超出画布会被裁剪。
UsejisFalse是否启用 JIS 编码标准针对日文 Shift_JIS 编码的兼容开关,仅生成日文二维码时需开启。true:按 JIS X 0510 标准编码(日文专用);false:按国际通用的 QRCode 标准(UTF-8/ANSI),适合中文 / 英文。
codeAnsiToUtf8(Code)二维码存储的核心内容需编码的文本 / 网址 / 数据(如 “https://xxx.com”、“123456789”)。需与编码格式匹配:AnsiToUtf8(Code):将 ANSI 编码的字符串转为 UTF-8,避免中文乱码;内容长度受VersionEclevel限制(例:版本 1+M 级可存 25 个数字 / 10 个中文)。
BackColorclwhite二维码背景色二维码空白区域的颜色(模块外的底色)。取值为 Delphi 颜色常量(clWhite/clGray)或 RGB 值(RGB(255,255,255)),推荐白色(兼容扫码设备)。
SymbolColorclblack二维码模块颜色二维码黑色方块(有效数据区)的颜色。取值为 Delphi 颜色常量,推荐黑色(clBlack),避免浅色系(扫码识别率低)。
Angle0二维码旋转角度生成的二维码图像旋转角度(顺时针)。取值为 0/90/180/270(部分组件支持任意角度,但非 90 倍数会降低扫码识别率);0 = 无旋转(默认,识别率最高)。

二、关键补充说明

1. 纠错级别(Eclevel)的实际选择
  • 普通场景(无遮挡):选 1(M 级,15% 容错),平衡容量和容错;
  • 高容错场景(如贴纸 / 易磨损):选 2/3(Q/H 级);
  • 小尺寸二维码(版本 1-5):选 0(L 级),节省容量。
2. 版本号(Version)的自动适配

若手动设置的版本号无法容纳code内容(比如版本 1 存 50 个中文),组件通常会:

  • 抛出 “数据溢出” 异常;
  • 自动升级到足够的版本(需组件支持该特性);建议:若不确定内容长度,可将Version设为 0(部分组件支持 “自动适配版本”)。
3. 编码格式(Usejis + AnsiToUtf8)
  • 中文 / 英文混合:必须用AnsiToUtf8转 UTF-8,且Usejis=False,否则中文乱码;
  • 纯日文:Usejis=True,用 Shift_JIS 编码,节省容量;
  • 纯数字 / 字母:无需转码,直接赋值code即可(QRCode 对数字 / 字母有压缩编码,容量更大)。
4. 像素倍率(Pxmag)与显示效果
  • 屏幕显示:Pxmag=2-4(二维码清晰且尺寸适中);
  • 打印输出:Pxmag=4-8(打印后模块边缘不模糊);
  • 避免设过大值(如 16):会导致二维码图像体积过大,加载 / 传输慢。

三、完整使用示例(结合属性解析)

delphi

var abar: TQRCode; picBMP: TPicture; Code: string; begin // 初始化输出载体 picBMP := TPicture.Create; picBMP.Bitmap := TBitmap.Create; picBMP.Bitmap.Width := 200; // 画布宽度 picBMP.Bitmap.Height := 200; // 画布高度 // 创建二维码组件 abar := TQRCode.Create(nil); try abar.Eclevel := 1; // M级容错(日常首选) abar.Pxmag := 4; // 每个模块4像素,21×21模块→84×84像素(版本1) abar.Version := 5; // 版本5(33×33模块),可存更多内容 abar.SymbolPicture := picBMP; // 二维码绘制到picBMP abar.Match := true; // 自动缩放至200×200画布 abar.Usejis := False; // 中文场景关闭JIS Code := '测试二维码123456'; abar.code := AnsiToUtf8(Code); // 转UTF-8避免中文乱码 abar.BackColor := clWhite; // 白色背景 abar.SymbolColor := clBlack;// 黑色模块 abar.Angle := 0; // 无旋转,扫码最稳定 // 生成二维码(部分组件需手动调用生成方法,如abar.Generate) // 将生成的二维码显示到Image1 Image1.Picture.Assign(picBMP); finally abar.Free; picBMP.Free; end; end;

总结

TQRCode的这些属性覆盖了二维码生成的核心维度:容错能力(Eclevel)、尺寸(Version/Pxmag)、内容(code)、样式(颜色 / 旋转)、输出(SymbolPicture)。核心原则是:

  • 优先保证code编码正确(UTF-8);
  • 按场景选择容错级别和版本号;
  • 像素倍率匹配显示 / 打印需求;
  • 颜色用黑白搭配,旋转选 90 倍数(最好 0 度),最大化扫码识别率。
http://www.jsqmd.com/news/101713/

相关文章:

  • Java开发者的AI逆袭之路:不用抛弃Java,照样在大模型时代吃得开(必收藏)
  • vscode copilot 不显示 claude sonnet 模型
  • Universal Key Programming: 2025 Autel AT100 Transponder Chip (10pcs/lot) for KM100, IM508, IM608
  • 百川大模型+BGE嵌入+LobeChat组合拳实战
  • 如何将当前工程文件发布版本,并使用?
  • 以太网为什么使用基带传输
  • 以太网编码技术
  • MeshLab文件格式完全指南:从入门到精通的实用技巧
  • 寓言创作工坊:LobeChat教你做道德启示
  • NVIDIA Profile Inspector深度解析:解锁显卡性能的终极工具
  • 钉钉机器人网关接入LobeChat对外服务能力
  • Android系统DMS驾驶纪录之GPS组件追踪服务架构分析
  • 1.15 并行编程
  • LobeChat新闻摘要生成服务搭建过程
  • Unreal Engine文档查询太难?LobeChat快速定位
  • 20. 指数函数和对数函数
  • 01. 内存对齐
  • LobeChat支持Markdown输出吗?代码展示效果实测
  • vue3中computed计算属性和watch监听的异同点
  • 东南大学论文模板配置终极指南:5分钟快速上手
  • 15min的博客—回归的学习方法
  • 语音转文字再回复:LobeChat全流程语音交互演示
  • 【计算机视觉(9)】运动恢复结构:从图像到三维点云的完整流程
  • vue3中computed计算属性和方法的区别
  • vue3中watch和watchEffect的区别
  • LobeChat表单插件开发入门:为AI添加结构化输入
  • Podcast Bulk Downloader:播客批量下载终极指南
  • LobeChat睡眠改善建议生成模型训练
  • LobeChat快手内容推送策略
  • VictoriaMetrics 尝鲜