发布网友 发布时间:2022-04-22 04:41
共3个回答
热心网友 时间:2023-04-25 07:32
二维码分两类:行排式二维条码和矩阵式二维码,已矩阵式二维码中QRcode为例。
QRcode是日本Denso公司开发的,目前网上有其二维码信息组件QRcode.dll,该组件可对输入的字符串进行QR编码
调用接口定义:
STDMETHOD
IMPCQREncoder:Encode(BSTR bstrEncodeData,
BYTE byErrorCorrectionLevel,
BOOL bISOI2EC,
BSTR *pbstrResultStream)
输入参数说明:
BSTR bstrEncodeData: 待编码的字符串,注意一个中文字符对应两个字节,对应汉字内码
BYTE byErrorCorrectionLevel:编码的纠错级别选择,0表示纠错级别L(7%),1表示纠错级别M(15%),2表示纠错级别Q(25%),3表示纠错级别H(30%)
BOOL bISOIEC:采用的编码标准,取值为TRUE表示采用国际标准(ISO/IEC18004),FALSE表示采国家标准(GB/TGB/T18284-2000)
输出参数说明:
BSTR *pbstrResultStream:输出字符串,字符串由三部分组成,(注意,每个字符为一个字节)
第一部分三字节,为编码后QR符号的宽度,
第二部分三字节,为编码后QR符号的高度,
第三部分为编码后的QR符号,长度为QR符号宽度与QR符号高度的乘积。
举个例子,对字符串“01234567”
编码后得到返回值为:
“021021111111101101101111111100000101010001000001101110100110101011101101110101100001011101101110100110001011101100000100110001000001111111101010101111111000000001100000000000101101110010001001011000101011010100101100100101111000111110010110100010010110001010000111111001010010000000000001110010100001111111101000011010110100000101011111000101101110100101001000001101110101010010010110101110101011010010100100000100101101011011111111101001100100010”
字符串“01234567”经二维码信息编码后应理解为:
21个单位宽(前三个字符‘021’)、21个单位高的正方形单位矩阵,
可以根据矩阵中的每一个元素值(0或1)来生成二维码图片对应位置上的像素颜色,假设定0值为白色,1值为黑色,每个单位(即021后面的字符)表示1个像素,那么当前二维码图片应为21像素宽、21像素高的黑白相间的图片。我想用编码后的信息,以这种定义生成图片的算法应该还是容易实现的。另外,QR编码具体算法,建议还是看看QR编码规范文档,如果你需要,我可以传给你。追问那您知道Android ZXing QR码 的编码解码方式是什么么?我有程序。可是不知道算法是什么。
追答zxing是android上的一个开源项目,它的二维码编码解码方式基于QR编码,QR编码就是我上面说的一种矩阵式二维码,结合上面举的例子来理解。具体的QR编码的源代码我也没有,只有一些文档和网上下载的.so库或.dll组件
热心网友 时间:2023-04-25 07:33
楼主是不是想要解码sd卡中二维码?我给你推荐一款软件qr droid这款软件,可以通过手机内的二维码图片直接解码追问不是,不好意思。。我程序已经做出来了,可是不知道算法。我想知道算法的名字
热心网友 时间:2023-04-25 07:33
zxing google code上有源码 要算法可以去看源码实现