二維碼是日本電裝公司開發的。目前網上有其二維碼信息組件QRcode.dll,可以對輸入的字符串進行二維碼。
呼叫接口定義:
標準方法
impcq encoder:Encode(BSTR bstrEncodeData,
byErrorCorrectionLevel,
BOOL bISOI2EC,
BSTR *pbstrResultStream)
輸入參數描述:
BSTR bstrancodedata:要編碼的字符串。註意壹個漢字對應兩個字節,對應漢字的內碼。
by糾錯級別:編碼糾錯級別的選擇,其中0表示糾錯級別L(7%),1表示糾錯級別M(15%),2表示糾錯級別Q (25%),3表示糾錯級別H(30%)。
采用的編碼標準。TRUE值表示采用國際標準(ISO/IEC 18004),false值表示采用國家標準(GB/TGB/T18284-2000)。
輸出參數描述:
BSTR *pbstrResultStream:輸出字符串,由三部分組成(註意每個字符是壹個字節)。
第壹部分是三個字節,這是編碼的QR符號的寬度。
第二部分是三個字節,是編碼的QR符號的高度。
第三部分是編碼的QR符號,其長度是QR符號的寬度和QR符號的高度的乘積。
例如,對於字符串“01234567”
編碼後得到的返回值是:
"021021111111101101101111111654 38+0000001010100010000011011101001101010111065438 +010111010110000101110110111010011000 1011101100000100110001000001111111101 010101111111000000001100000000000101101110065438+ 0000100101100010101101010010110010010111654 38+0000111110010110100010010110001010000111 1110010100100000000000011100101000011111116 5438+0010000110101101000001010111110001011065438+ 0110100101001000001101110101010010010110654 38+0011101010110100101001000001001011010110 11111111101001100100010"
字符串“01234567”應理解為:
21單位寬度(前三個字符‘021’),21單位高度正方形單位矩陣,
可以根據矩陣中的每個元素值(0或1)生成二維碼圖片對應位置的像素顏色。假設0的值是白色,1的值是黑色,每個單元(即021之後的字符)代表1個像素,那麽當前的二維碼圖片應該是21個像素寬,265440個像素寬。我覺得用這個定義生成圖片的算法,用編碼後的信息應該很容易實現。另外,二維碼的具體算法,我建議看看二維碼規範文檔,如果妳需要,我可以發給妳。