qrencode-4.0.2在Windows下的编译

环境:

    Windows 10 64bits;Visual Studio 2017;qrencode-4.0.2;CMake 3.12.1。

下载:

    qrencode-4.0.2.tar.gz 

解压:

    qrencode到【解压目录】,如D:/qrencode-4.0.2

编译:

    1 纯净编译(不带任何其他库):

        修改【解压目录】/CMakeLists.txt文件:不启用WITH_TOOLS变量去构建其他工具。

                原来:option(WITH_TOOLS "Build utility tools"  YES )

                修改:option(WITH_TOOLS "Build utility tools"  NO )

            其他不变,保存文件。

    2 打开cmake-gui.exe 

          Where is the source code: 填入【解压目录】

          Where to build the binaries: 填入【CMake 输出目录(自定义)】

         点击按钮【Configure】,选择编译器类型【Visual Studio 15 2017 win64】,configure出错,有很多红色。如图1.

          【可选】如果你需要修改【编译后安装的路径CMAKE_INSTALL_PREFIX】,则点击上图中的对应行即可进行编辑修改。

          再次点击按钮【Configure】,提示“Configuring done”。

          点击按钮【Generate】,提示“Generating done”。

          至此,由CMake生成qrencode的VS2017 x64的解决方案【QRencode.sln】完成。CMake软件使用完毕。

    使用VS2017打开【QRencode.sln】

          方法一:自行到【CMake 输出目录(自定义)】目录下,双击QRencode.sln。

          方法二:继续使用刚才的CMake软件,点击按钮【Open Project】即可。

          选中【ALL_BUILD】编译,编译成功后,选中【INSTALL】进行安装,安装路径为上文【可选】中提到的CMAKE_INSTALL_PREFIX所指定的路径。

         至此,编译完成!

测试:

需要使用OpenCV库将编码数据转换为图片,以便观看及验证。

int main() {
	//
	std::string src = "iam mylaf 1359.com";

	// 使用qrencode进行字符串编码
	QRcode * code = QRcode_encodeString(src.c_str(), 0, QR_ECLEVEL_H,QR_MODE_8, 1);

	if (code == NULL) {
		std::cout << "code = NULL" << std::endl;
		return -1;
	}

	// 使用OpenCV库将编码数据表述为图片
	cv::Mat img = cv::Mat(code->width, code->width, CV_8U);
	for (int i = 0; i < code->width; ++i) {
		for (int j = 0; j < code->width; ++j)
		{
			img.at<uchar>(i, j) = (code->data[i*code->width + j] & 0x01) == 0x01 ? 0 : 255;
		}
	}

	// 将图片数据写入文件
	cv::imwrite("qrcode.png", img);

	//cv::imshow("kkk", img);
	//cv::waitKey(0);
	//
	return 0;
}

测试结果:

qrcode.png 如下:

将qrcode.png上传到在线解码,得到:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值