ThoughtWorks.QRCode 生成QR二维码时提示“索引超出了数组界限”的原因和解决方法...

“索引超出了数组界限”也有可能确实是因为你选择的二维码Version对应的容量不足以存储你所放的内容,如果你确定使用的版本容量二维码能存储你的内容,但还是报错,那么再考虑此解决方法

这两天忙着做一个客户标签打印程序,因为二维码里面存在控制符,使用ZPL指令存在一些问题,因此决定使用生成二维码图片然后转换成ZPL格式图片来打印。途中找了很多类库,很多都无法自定义QR的version而放弃,转而找到ThoughtWorks.QRCode.dll,效果很满意,但是测试的时候发现经常会提示“索引超出了数组界限”异常,开始以为是内容太多的原因。测试多种version都不凑效,我使用的是version=10,而该版本最高可容纳213个字节,实际内容却只有100多个字节。然后网上各种找答案,要么说设置为0(0是QR自动大小)这样我使用该类库就没有意义了,而且使用此方法也测试过,依然报错。

然后我开始找ThoughtWorks.QRCode的源码,使用源码一行一行调试,结果发现使用源码自带的demo程序,设置与我程序一样的version,放一样的内容,竟然没有报错,此时我肯定了不是因为二维码容量导致的。

接着我开始两个程序同步调试,一行一行观察两个程序运行时源码QRCodeEncoder.cs中每个数值是否相同,最后在我的程序在源码第448行处发现报了异常,源码demo却没有。查看代码,此处在读某个文件,

然后发现在源码demo程序生成文件夹中有这么一个文件夹(下图),按448行的理解,此文件夹中应该存储的是QR对应的Version的数据文件,用于计算二维码容量,而我的程序没有此文件夹计算结果为0,后续计算自然会报“索引超出了数组界限”异常。

把此文件夹复制到程序中,问题解决,不再报此异常。最后附上Demo源码!

附件:点击下载

 

转载于:https://www.cnblogs.com/vice/p/7154809.html

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: thoughtworks.qrcode是一个二维码生成工具,可以帮助用户快速生成二维码,并支持自定义二维码的颜色、大小、形状等属性。该工具由ThoughtWorks公司开发,旨在为用户提供便捷的二维码生成服务。 ### 回答2: thoughtworks.qrcode 是ThoughtWorks公司开发的一个二维码生成和解码库。二维码是一种存储数据的矩阵条形码,可以被扫描器或手机相机读取。该库提供了简单易用的API,可以方便地在各种编程语言中生成和解码二维码。 使用 thoughtworks.qrcode,可以轻松地生成各种类型的二维码,包括网址、文本、邮件地址、电话号码和其他自定义数据。生成二维码只需要提供相应的信息和设置,库会自动生成相应的二维码图片。生成二维码可以保存为图片文件或直接显示在网页上。 除了生成二维码,thoughtworks.qrcode还提供了解码功能,可以将扫描到的二维码解析为相应的数据。可以通过该库获得二维码中包含的文本、网址、邮件地址等信息。解码功能可以用于二维码的自动识别和读取。 thoughtworks.qrcode的优点是简单易用、功能强大。无论是生成还是解码二维码,只需要几行代码就可以实现。该库还支持自定义二维码的样式、大小和颜色等参数,可以满足不同的需求。 总之,thoughtworks.qrcode是一个方便实用的二维码生成和解码库,适用于各种编程语言和应用场景。无论是为个人还是商业目的,都可以利用该库轻松地生成和解码二维码。 ### 回答3: thoughtworks.qrcode是一个开源的二维码生成工具,由全球知名的软件公司ThoughtWorks开发和维护。它提供了一种简单而高效的方式来生成各种类型的二维码,包括URL链接、文本、电子名片、Wi-Fi连接等。 thoughtworks.qrcode基于Java编程语言开发,可以很容易地集成到各种应用程序中。它提供了丰富的API,使开发人员可以根据自己的需求生成定制化的二维码。同,thoughtworks.qrcode还支持多种二维码格式,如QR Code、Aztec Code、Data Matrix等,使用户可以根据需要选择最适合的格式。 thoughtworks.qrcode还具有很好的扩展性和可定制性。用户可以根据自己的需求对生成二维码进行个性化的设计,比如添加自定义的颜色、背景图片、LOGO等,增加二维码的辨识度和美观度。此外,thoughtworks.qrcode还支持二维码的错误纠正功能,可以在一定的损坏和变形情况下仍能正确扫描。 除了生成二维码,thoughtworks.qrcode还提供了解析已有二维码的功能。用户可以通过该工具轻松地解析已有的二维码,并获取其中的信息,如URL、文本内容等。这对于需要处理大量二维码的应用场景非常有用,比如扫码登录、扫码支付等。 总的来说,thoughtworks.qrcode是一个功能强大且易于使用的开源二维码生成工具,通过它,开发人员可以方便地生成和解析各种类型的二维码,为应用程序增加功能和美观度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值