在开发板上生成一个带logo的二维码 -(三)

详细版(有截图);http://download.csdn.net/detail/qq_22122811/9675853

第三阶段:在开发板上生成一个带logo的二维码

  “二维码”英文可译为2-D barcodes (two-dimensional barcodes的缩写) 或QR Code。 其中barcode指条形码,QR是Quick Response的缩写,即快速反应。

经过一段时间的研究,在原来没有添加logo图片的二维码中添加了logo图片。

       其实原理比较简单(添加logo图片),就是在生成的二维码中重新绘制一个图片上去就ok了。但是图片的大小是有限制的,在容错率较低的情况下,如果中间logo图片比较大会影响二维码的解析。一般在生成是使用高等级生成二维码。

        但是问题来了,那中间的logo是本地的图片还是网络图片呢,图片的大小如何设置呢。根据相关资料显示一般logo图片的比例不超过整个二维码图片的1/3是不会影响二维码的解析的。 

参考资料:二维码有一个容错率的概念。
容错率是指二维码在正常识别的前提下可被遮挡的部分占总二维码面积的百分比。容错率越高,可被遮挡的面积越大,二维码图案也越复杂。目前容错率可分为L,M,Q,H四个等级,分别表示7%,15%,25%,30%但是,二维码的复杂程度不全取决于二维码的容错率。在容错率一定的情况下,二维码包含的信息越多,二维码也会越复杂。目前,鉴于国产手机摄像头的辨识能力,建议生成二维码时,不要超过150个字符。(二维码太复杂也影响构图美观)

   现在需要从代码端来设置二维码的位置,达到每次修改二维码的大小,logo随着二维码的改变而改变,一直是在二维码的中部,这样就需要从qrencode处的代码位置来解决这个问题;

问题:怎么样让一个图片处于另一个图片居中位置?

构想:让这两个控件放在同一个Frame中,一个控件放在另一个控件的居中位置;

实现原理:QLabel(对象名为label_pixcode)加载二维码图片,二维码在label_pixcode的居中位置,而logo图片作为资源文件,放在一个新的QLable上,(对象名为label_logo,位置居中,(拖动实现);

1.QT工程中(可以建立一个只有这一个界面的QT工程,这里不细致描述!),界面上加入这两个QLabelobject name分别为label_pixcodelabel_logo,中间的篮球就是要显示的logo,加载方式为资源形式,即将这个篮球图片文件放在工程目录下的qrc目录下,设置属性stylesheetborder-image为该图,效果如下;

 

2.在该界面应用程序中,添加如下几行的代码,保证在QT工程运行的同时,qrencode程序伴随执行,并生成二维码1.png放在当前工程目录下;二维码的生成过程省略,具体见《在开发板上生成一个带logo的二维码-(二)》

 

3.在该界面下的应用程序(.cpp)中,添加三行以下的代码,将二维码图片1.png显示在label_pixcode的中间部位;

注:这里的第二行就是将1.png图片显示在中间的功能;

 

引申:上下左右?

这里的 Qt::Alignment 类型有以下取值。

1Qt::AlignLeft::水平方向靠左。

2Qt::AlignRight:水平方向靠右。

3Qt::AlignHCenter:水平方向居中。

4Qt::AlignJustify:水平方向调整间距两端对齐。

5Qt::AlignTop:垂直方向靠上。

6Qt::AlignButton:垂直方向靠下。

7Qt::AlignVCenter:垂直方向居中。

 

4.观察开发板,显示屏,发现成功了!

 

参考:       

二维码中添加logo图片(提供下载)- FreshMan -博客频道- CSDN.NET 

http://blog.csdn.net/qin_zhangyongheng/article/details/41383473

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值