qrencode二維碼產生庫函數使用心得,qrencode庫函數
開發環境:
Linux平台:虛擬機器下ubuntu 14.04
交叉編譯工具:gcc-4.4.3
arm開發板:mini2440
arm 核心版本:linux-3.4.99
最近公司的項目需要在展訊功能機平台下實現字串產生二維碼功能,在網上搜了下,有個linux平台下的開源QR碼C函數庫qrencode。於是在此源碼上進行了一番嘗試移植。
下載qrencode-3.4.4.tar.gz原始碼,進入qrencode-3.4.4目錄,因為實際代碼並不運行在linux環境下,故我並不按照./configuer ,make,make install ......等一系列命令去產生linux下需要的函數庫,標頭檔等。
建立一個工程檔案夾,把qrencode相關檔案拷貝到該檔案夾下,嘗試編譯(對於makefile的編寫,不在這雷述了),最後發現基本所有的檔案都有依賴關係(並沒有深入去對源碼進行裁剪),需要檔案見:
其中main檔案是自己編寫的。
對於字串產生二維碼,其實最簡單的調用函數就是:
QRcode *qrcode;qrcode = QRcode_encodeString("sissi", 2, QR_ECLEVEL_L, QR_MODE_8, 0);
對於函數參數的解釋和別的函數說明,可以參考QRencode,返回結構體中,qrcode->data包含了二維碼映像的資訊,其實資料的bit0代表了點的顏色,1表示黑色,0表示白色。
在level2中(第二個參數指定二維碼等級)產生的二維碼映像是25x25。寫一個測試程式串口列印:
for(i=0;i<25;i++){for(j=0;j<25;j++){if(qrcode->data[i*25+j]&0x01){printf("#");}else{printf("_");}}printf("\n");}printf("\n");在開發板上運行發現:
此時已經能看出二維碼的大概映像了。
接著嘗試在LCD上顯示,對於lcd的顯示,這邊也不再介紹,無非就是最基本的描點,但要注意,如果只是按照原來一點一點的描的話,映像會太小掃不出來,可以先對映像進行放大再顯示:
從顯示的二維碼確實能掃出“sissi”字串。
自己建立的整個工程源碼並不依賴什麼別的什麼特殊的函數庫,故應該能很容易移植到別的處理器上,並且不依賴linux系統。
Zxing在ios上可以產生二維碼?
我在現在的項目裡加了libqrencode用QRCode實現了二維碼產生,但是現在發現原來加的ZXing掃描二維碼出現了問題,彈出了掃描的介面 但是他不做掃描的動作了,這兩者有什麼關係嗎?請指教