news 2026/6/23 21:12:11

二维码QRCode的属性

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
二维码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 度),最大化扫码识别率。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 19:50:47

Linux EEPROM调试

目录 目录 前言 DTS配置的参考 AT24C256 EEPROM的DTS配置参考 AT24C02 EEPROM的DTS配置参考 内核配置的参考 AT24C256 EEPROM的内核配置参考 AT24C02 EEPROM的内核配置参考 验证测试的参考 AT24C256 EEPROM的验证测试参考 AT24C02 EEPROM的验证测试参考 总结 前言 …

作者头像 李华
网站建设 2026/6/22 20:46:34

安达发|当艺术遇见算法:APS系统如何解开工艺品行业的生产魔方

在浙江某工艺品厂的总经理办公室里,林总正对着一份生产报表眉头紧锁:三张海外客户的定制屏风订单已经逾期两周,而车间里却堆满了另一批并不紧急的库存产品。这并非个例——在工艺品行业,这种“该来的不来,不该来的堆满…

作者头像 李华
网站建设 2026/6/23 1:26:36

Obsidian Style Settings插件使用指南:打造个性化笔记界面

Obsidian Style Settings插件使用指南:打造个性化笔记界面 【免费下载链接】obsidian-style-settings A dynamic user interface for adjusting theme, plugin, and snippet CSS variables within Obsidian 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian…

作者头像 李华
网站建设 2026/6/19 15:13:14

Swagger2Word终极指南:一键将API文档转为专业Word格式

Swagger2Word终极指南:一键将API文档转为专业Word格式 【免费下载链接】swagger2word 项目地址: https://gitcode.com/gh_mirrors/swa/swagger2word 还在为API文档管理而烦恼吗?Swagger2Word这款开源神器帮你解决所有文档转换难题!作…

作者头像 李华
网站建设 2026/6/23 11:36:32

【C2000中断Debug】如何定位与调试异常中断

【C2000中断Debug】如何定位与调试异常中断 一、问题描述 在 CPU 上支持实时任务需要使用中断。如果外部传感器检测到故障,则需要中断或停止 CPU,以执行能够处理故障的子例程。在此示例中,信号到达 CPU 时中断的时序至关重要。中断是硬件或软件驱动的信号,可导致 CPU 暂停…

作者头像 李华