Data Matrix码的使用

16 篇文章 1 订阅
11 篇文章 1 订阅

一、引言       

        Data Matrix原名Data code,由美国国际资料公司(International Data Matrix, 简称ID Matrix)于1989年发明。Data Matrix又可分为ECC000-140与ECC200两种类型,ECC000-140具有多种不同等级的错误纠正功能,而ECC200则透过Reed-Solomon演算法产生多项式计算出错误纠正码,其尺寸可以依需求印成不同大小,但采用的错误纠正码应与尺寸配合,由于其演算法较为容易,且尺寸较有弹性,故一般以ECC200较为普遍。【百度百科】

        目前能实现检测与识别库有libdmtx库和zxing。这里以libdmtx库为例,进行检测与识别。

二、环境配置与编译

        在c++ windows vs环境中,环境配置还是有些麻烦的。从上述链接中下载所需libdmtx源文件(本人使用的是0.7.5版本)。

  1. 新建vs项目,我这里是新建一个编译成静态库项目;
  2. 解压下载的libdmtx文件,将libdmtx-0.7.5/目录下的所有文件(有24个文件)复制到新建项目的根目录;如下所示;

  3. 将复制的文件添加到这个项目文件结构中,如下图所示;

  4. 修改预编译头属性(不使用预编译头),如下图所示;

  5. 选择编译为C代码,如下图所示;

  6. 将#include "dmtx.h"和#include "dmtxstatic.h"两个头文件分别添加到上述第3步中源文件下每一个.c文件里;
  7. 将float.h、stdio.h、limits.h、assert.h、math.h文件增加到dmtx.h中;注释掉dmtx.c文件里包括的.c文件;
  8. 将项目查找到CHKERR、CHKSCHEME、CHKSIZE、CALLBACK_MATRIX、ISDIGIT、CALLBACK_POINT_PLOT等的定义中复制到dmtx.h中;
  9. 将静态库程序里面的snprintf函数用sprintf_s函数替代;
  10. 出现诸如下图所示的错误,可以将声明与定义该函数的static删掉(本人采用的方法),也可以用非静态函数进行二次封装(工作量大);
     

        如果按照上述进行操作,大概就能如下所示编译出静态库了。前九个步骤还是好操作的,第十个花时间,如果使用,可以移步这里。这是我调整好的代码。

 三、运用

        安装上述方式编译,得到windows环境下动态库,使用方式可以参考如下。首先新建QRCode属性表,如下所示:

         配置包含目录及库目录,如下:

         最后配置附加依赖项,如下:

         本人进行二次封装后,使用效果如下:

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值