Windows+VS2015+libdmtx学习总结

本文档仅用于个人学习总结。

libdmtx是一个专门用来解 datamatrix码制的开源代码库。
代码下载:https://sourceforge.net/p/libdmtx/libdmtx/ci/v0.7.4/tree/
wiki:http://libdmtx.wikidot.com/general-instructions
使用介绍:https://blog.csdn.net/qq_34965116/article/details/84202703

稳定版本:0.7.4
vs添加方法(参考博客):
将64位的libmtx.lib libmtx.dll文件以及dmtx.h放入工程目录
将dmtx.h添加添加至头文件。在工程属性页->链接器->输入->附加依赖中加入libdmtx.lib

参考代码:

DmtxMessage *msg;
DmtxRegion *reg;
DmtxImage *img;
img = dmtxImageCreate(binImg.data, binImg.cols, binImg.rows, DmtxPack8bppK);

DmtxDecode *dec = dmtxDecodeCreate(img, 1);
// 增加超时时间。
DmtxTime beginTime = dmtxTimeNow();	// 根据系统设置情况,获得当前时间
long timeout_ms = 20;		
DmtxTime stopTime = dmtxTimeAdd(beginTime, timeout_ms);	// 增加xx ms。
reg = dmtxRegionFindNext(dec, &stopTime);				// 如果超时则认为没有找到
string info;
if (reg != NULL) {
	msg = dmtxDecodeMatrixRegion(dec, reg, DmtxUndefined);
	if (msg != NULL) {
		//cout << msg->output << endl;
		info = (char*)msg->output;		// 转化成字符串返回去 
		dmtxMessageDestroy(&msg);
	}
	dmtxRegionDestroy(&reg);
}
//else
//	cout << "Cannot find codes..." << endl;
dmtxDecodeDestroy(&dec);
dmtxImageDestroy(&img);

个人注明:
dmtxImageCreate时注意图片类型,选择相关的参数(DmtxPack8bppK)
dmtxRegionFindNext中第二个参数是扫描时间上限,达到该时间退出扫描

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值