VC利用 zint 库生成二维码

1. zint库,可以先下载源码,编译出来。编译过程需要用到 libpng库。

2. 使用起来比较简单,导入头和库文件即可。

3. 在生成QR二维码时,手册上没有描述具体信息。下面给出一段生成二维码的代码。


BOOL CSystemInfo::GenerateBarcode(const char *szText,int len,const char *szOutPath)
{
	struct zint_symbol *symbol;
	int ret = 0;

	if (!szText)
	{
		DbgPrint(("GenerateBarCode invalid parameter"));
		return FALSE;
	}

	TRY
	{
		symbol = ZBarcode_Create();
		if (symbol != NULL)
		{
			symbol->scale = 4;
			symbol->option_1 = 1; //容错级别
			symbol->option_2 = 1; //版本,决定图片大小
			symbol->symbology = BARCODE_QRCODE;
			symbol->output_options = 0;
			symbol->show_hrt = 0; //可显示信息,如果设置为1,则需要设置text值
			symbol->input_mode = UNICODE_MODE;
			if (szOutPath)
				memcpy(symbol->outfile,szOutPath,sizeof(symbol->outfile) - 1); //输出文件名
		
			ret = ZBarcode_Encode(symbol,(unsigned char *)szText,len); //编码
			if (ret != 0)
			{
				DbgPrint(("ZBarcode_Encode err: %s",symbol->errtxt));
				ZBarcode_Delete(symbol);
				return FALSE;
			}
			ret = ZBarcode_Print(symbol,0); //antate angle 旋转角度
			if (ret > WARN_INVALID_OPTION)
			{
				DbgPrint(("ZBarcode_Print ret: %d,err: %s",ret,symbol->errtxt));
			}
			ZBarcode_Delete(symbol);
			return TRUE;
		}else
		{
			DbgPrint(("ZBarcode_Create err: %s",symbol->errtxt));
			return FALSE;
		}
	}CATCH(CException,e)
	{
		char szErr[256] = {0};
		e->GetErrorMessage(szErr,255);
		DbgPrint(("GenerateBarcode exception: %s",szErr));
		return FALSE;
	}END_CATCH
}

注:

二维码的设置需要如下几个参数:

scale  放大倍数

option_1 依赖于symbology,不同编码有不同意义

option_2 依赖于symbology,不同编码有不同意义

symbology  编码类型,在手册上有描述,如二维码是58

output_options 有无边框之类的控制

show_hrt 在图片上显示可读信息,如果设置为1,则text必须含有内容。

text 图片上显示的文字信息,配合show_hrt使用。

input_mode 决定编码格式,二进制流,还是ASCII,亦或是UTF8


源码http://download.csdn.net/detail/liuyu60305002/6835395



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值