qrencode二維碼產生庫函數使用心得,qrencode庫函數

來源:互聯網
上載者:User

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掃描二維碼出現了問題,彈出了掃描的介面 但是他不做掃描的動作了,這兩者有什麼關係嗎?請指教
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.