0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ELF 1技術(shù)貼|如何在開發(fā)板上生成二維碼圖像

ElfBoard ? 2024-05-07 14:54 ? 次閱讀

在開發(fā)應(yīng)用程序時(shí),常常需要生成二維碼以便于用戶通過掃描快速訪問信息。為了實(shí)現(xiàn)這一功能開發(fā)者通常選用 QRencode 專為生成二維碼圖像設(shè)計(jì)的開源庫。然而,要在特定平臺(tái)上使用 QRencode,需要將其進(jìn)行交叉編譯,以確保能夠在目標(biāo)平臺(tái)上正確運(yùn)行。

深入來看,QRencode庫的正常運(yùn)作依賴于兩個(gè)核心支撐庫:Zlib與LibPNG。其中,Zlib作為開放源代碼的壓縮與解壓縮庫,為數(shù)據(jù)處理提供了強(qiáng)大支持;而LibPNG則用于PNG圖像格式的解析與操作,是圖像處理的關(guān)鍵環(huán)節(jié)。因此,在正式啟動(dòng)QRencode庫的交叉編譯流程之前,需先行完成對(duì)這兩個(gè)基礎(chǔ)庫——Zlib與LibPNG的交叉編譯工作。

本篇文章將以ELF 1開發(fā)板為實(shí)例,逐步闡述如何將這三大庫——Zlib、LibPNG以及QRencode——成功移植并部署至ELF 1平臺(tái)上,解鎖在該平臺(tái)上的二維碼生成能力。

一、下載源碼

在瀏覽器復(fù)制以下鏈接跳轉(zhuǎn)后即可下載源碼

Zlib-1.3.1.tar.gz(https://zlib.net/)

LibPNG-1.6.43.tar.xz(https://www.linuxfromscratch.org/blfs/view/svn/general/libpng.html)

QRencode-4.1.1.tar.gz(https://fukuchi.org/works/qrencode/)

二、交叉編譯Zlib

1、將zlib-1.3.1.tar.gz 源碼拷貝到Ubuntu環(huán)境中并進(jìn)行解壓

elf@ubuntu:~/work/qrencode$ tar xvf zlib-1.3.1.tar.gz

2、進(jìn)入Zlib源碼目錄內(nèi),創(chuàng)建一個(gè)zlib_INSTALL文件夾以用來放置編譯出來的文件

elf@ubuntu:~/work/qrencode$ cd zlib-1.3.1 elf@ubuntu:~/work/qrencode/zlib-1.3.1$ mkdir zlib_INSTALL

3、設(shè)置環(huán)境變量

elf@ubuntu:~/work/qrencode/zlib-1.3.1$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

4、生成Makefile,make 進(jìn)行編譯

elf@ubuntu:~/work/qrencode/zlib-1.3.1$./configure --prefix=$(pwd)/zlib_INSTALL elf@ubuntu:~/work/qrencode/zlib-1.3.1$ make

5、編譯完成,執(zhí)行make install將庫和例程等文件安裝到目標(biāo)文件下

elf@ubuntu:~/work/qrencode/zlib-1.3.1$ make install elf@ubuntu:~/work/qrencode/zlib-1.3.1$ ls zlib_INSTALL/ include lib share

三、交叉編譯LibPNG

1、libpng-1.6.43.tar.xz源碼拷貝到Ubuntu環(huán)境中并進(jìn)行解壓

elf@ubuntu:~/work/qrencode$ tar xvf libpng-1.6.43.tar.xz

2、進(jìn)入LibPNG源碼目錄內(nèi),創(chuàng)建一個(gè)libpng_INSTALL文件夾以用來放置編譯出來的文件:

elf@ubuntu:~/work/qrencode$ cd libpng-1.6.43 elf@ubuntu:~/work/qrencode/libpng-1.6.43$ mkdir libpng_INSTALL

3、設(shè)置環(huán)境變量

elf@ubuntu:~/work/qrencode/libpng-1.6.43$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

4、生成Makefile,make 進(jìn)行編譯

elf@ubuntu:~/work/qrencode/libpng-1.6.43$./configure --prefix=$(pwd)/libpng_INSTALL --host=arm elf@ubuntu:~/work/qrencode/libpng-1.6.43$ make

5、編譯完成,執(zhí)行make install將庫和例程等文件安裝到目標(biāo)文件下

elf@ubuntu:~/work/qrencode/libpng-1.6.43$ make install elf@ubuntu:~/work/qrencode/libpng-1.6.43$ ls libpng_INSTALL/ bin include lib share

四、交叉編譯QRencode

1、將qrencode-4.1.1.tar.gz 源碼拷貝到Ubuntu環(huán)境中并進(jìn)行解壓

elf@ubuntu:~/work/qrencode$ tar xvf qrencode-4.1.1.tar.gz

2、進(jìn)入QRencode源碼目錄內(nèi),創(chuàng)建一個(gè)qrencode_INSTALL文件夾以用來放置編譯出來的文件

elf@ubuntu:~/work/qrencode$ cd qrencode-4.1.1 elf@ubuntu:~/work/qrencode/qrencode-4.1.1$ mkdir qrencode_INSTALL

3、設(shè)置環(huán)境變量

elf@ubuntu:~/work/qrencode/qrencode-4.1.1$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi elf@ubuntu:~/work/qrencode/qrencode-4.1.1$ export png_CFLAGS="-I/home/elf/work/qrencode/libpng-1.6.43/include/libpng16 -I/home/elf/work/qrencode/libpng-1.6.43/include -I/home/elf/work/qrencode/zlib-1.3.1/include" elf@ubuntu:~/work/qrencode/qrencode-4.1.1$ export png_LIBS="-L/home/elf/work/qrencode/libpng-1.6.43/lib -lpng16 -L/home/elf/work/qrencode/libpng-1.6.43/include -I/home/elf/work/qrencode/zlib-1.3.1/lib -lz -lm"

4、生成Makefile,make 進(jìn)行編譯

elf@ubuntu:~/work/qrencode/qrencode-4.1.1$ ./configure --enable-static --disable-shared --prefix=$(pwd)/qrencode-4.1.1_INSTALL --host=arm elf@ubuntu:~/work/qrencode/qrencode-4.1.1$ make

5、編譯完成,執(zhí)行make install將庫和例程等文件安裝到目標(biāo)文件下

elf@ubuntu:~/work/qrencode/qrencode-4.1.1$ make install elf@ubuntu:~/work/qrencode/qrencode-4.1.1$ ls qrencode_INSTALL/ bin include lib share

將以上編譯生成的所有文件拷貝到開發(fā)板/目錄下 ,即可完成部署。

五、測試

root@ELF1:~# qrencode -s 25 -o test.png Hello-ElfBoard

-s:指定圖片大小

-o:輸出二維碼圖片名稱

可以打開微信進(jìn)行掃一掃,掃描結(jié)果如下圖所示:

wKgaomY5z92AUn-3AACY5VW2a8M597.png

至此,就完成了QRencode庫在開發(fā)板上的移植,即可實(shí)現(xiàn)在開發(fā)板上生成二維碼圖像。誠摯希望上述指南能為各位小伙伴在嵌入式開發(fā)實(shí)戰(zhàn)中提供幫助,助力大家邁向新高度!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6023

    文章

    44378

    瀏覽量

    628615
  • 嵌入式
    +關(guān)注

    關(guān)注

    5046

    文章

    18830

    瀏覽量

    298736
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4772

    瀏覽量

    96205
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【學(xué)習(xí)打卡】OpenHarmony應(yīng)用開發(fā)二維碼生成

    的使用,實(shí)現(xiàn)了根據(jù)輸入內(nèi)容實(shí)時(shí)生成二維碼。 視頻教程 OpenHarmony應(yīng)用開發(fā)二維碼生成器 OpenHarmony應(yīng)用
    的頭像 發(fā)表于 07-01 17:53 ?4057次閱讀
    【學(xué)習(xí)打卡】OpenHarmony應(yīng)用<b class='flag-5'>開發(fā)</b>之<b class='flag-5'>二維碼</b><b class='flag-5'>生成</b>器

    嵌入式學(xué)習(xí)-飛凌ElfBoard ELF 1板卡 - 在開發(fā)板生成二維碼圖像

    開發(fā)應(yīng)用程序時(shí),經(jīng)常需要生成二維碼以便于快速掃描訪問信息。為了實(shí)現(xiàn)這一功能,我們可以使用qrencode 庫。qrencode 是一個(gè)開源的庫,用于生成
    發(fā)表于 05-10 09:36

    I.MX6ULL-飛凌 ElfBoard ELF1板卡 - 在開發(fā)板生成二維碼圖像

    開發(fā)應(yīng)用程序時(shí),經(jīng)常需要生成二維碼以便于快速掃描訪問信息。為了實(shí)現(xiàn)這一功能,我們可以使用qrencode 庫。qrencode 是一個(gè)開源的庫,用于生成
    發(fā)表于 05-10 09:42

    二維碼識(shí)別

    `利用筆記本電腦的攝像頭采集二維碼圖像并識(shí)別,顯示二維碼的信息!下載了labview視覺與運(yùn)動(dòng)模塊的可以下來看看!里面有2張二維碼,用二維碼
    發(fā)表于 08-27 16:52

    二維碼軟件中制作Dot Code二維碼的步驟

      在二維碼軟件中,點(diǎn)擊軟件左側(cè)的“二維碼”按鈕,在畫布繪制二維碼樣式,雙擊二維碼,在圖形屬性-條碼選項(xiàng)卡中,設(shè)置條碼類型為Dot Cod
    發(fā)表于 12-02 15:45

    HarmonyOS教程—基于AI的生成能力,實(shí)現(xiàn)二維碼生成與掃功能

    );生成logo圖標(biāo)二維碼將logo圖標(biāo)對(duì)應(yīng)的PixelMap圖像,畫在已經(jīng)生成二維碼PixelMap
    發(fā)表于 08-30 14:01

    何在STM32F407開發(fā)板控制LV3096二維碼模塊呢

    何在STM32F407開發(fā)板控制LV3096二維碼模塊呢?有哪些步驟?
    發(fā)表于 10-28 07:04

    二維碼技術(shù)的編譯規(guī)則分析

    本文針對(duì)二維碼編譯原理進(jìn)行了深入分析和研究,并詳細(xì)描述了QR Code技術(shù)生成二維碼過程中的編譯規(guī)則,分別對(duì)數(shù)據(jù)編碼和糾錯(cuò)碼編碼進(jìn)行了全面分析,最后還簡單介紹了使
    發(fā)表于 11-05 15:19 ?29次下載
    <b class='flag-5'>二維碼</b><b class='flag-5'>技術(shù)</b>的編譯規(guī)則分析

    如何將視頻轉(zhuǎn)換生成二維碼觀看

    如今,二維碼的應(yīng)用越來越廣了,也非常方便,那么如何把視頻轉(zhuǎn)換生成二維碼呢?網(wǎng)頁地址轉(zhuǎn)換二維碼的工具很多,但視頻轉(zhuǎn)換二維碼的工具,可就比較少了
    發(fā)表于 07-30 15:21 ?1.3w次閱讀

    二維碼在智能門禁中的應(yīng)用,二維碼門禁如何保證安全性

    是:會(huì)的。 若不夠用,是不是會(huì)重復(fù)使用?那對(duì)智能門禁而言,又怎樣能保證二維碼的安全性?要想搞清這些問題,我們需要從二維碼原理說起。二維碼怎樣識(shí)別?二維碼
    的頭像 發(fā)表于 07-19 10:33 ?3709次閱讀
    <b class='flag-5'>二維碼</b>在智能門禁中的應(yīng)用,<b class='flag-5'>二維碼</b>門禁如何保證安全性

    鴻蒙系統(tǒng)生成二維碼技術(shù)

    ?? 在實(shí)際應(yīng)用開發(fā)中,時(shí)不時(shí)的會(huì)遇到 AI 領(lǐng)域相關(guān)的一些技術(shù),本節(jié)主要詳細(xì)講述一下生成二維碼技術(shù),
    的頭像 發(fā)表于 10-19 09:17 ?2608次閱讀

    51單片機(jī)生成二維碼

    51單片機(jī)生成二維碼
    發(fā)表于 11-12 13:51 ?30次下載
    51單片機(jī)<b class='flag-5'>生成</b><b class='flag-5'>二維碼</b>

    LV版本的二維碼生成及源碼分享

    LV版本的二維碼生成及源碼分享。
    發(fā)表于 04-11 15:06 ?0次下載

    二維碼讀頭有什么功能?如何選擇二維碼讀頭?

    圖像識(shí)別系統(tǒng)來讀取手機(jī)屏幕和紙質(zhì)文檔的條碼信息,二維碼讀頭應(yīng)用很是廣泛。而深圳遠(yuǎn)景達(dá)(RAKINDA)作為專業(yè)條碼識(shí)別設(shè)備的研發(fā)設(shè)計(jì)制造商之一,巧妙地將掃
    的頭像 發(fā)表于 03-30 15:03 ?1674次閱讀
    <b class='flag-5'>二維碼</b>掃<b class='flag-5'>碼</b>讀頭有什么功能?如何選擇<b class='flag-5'>二維碼</b>讀頭?

    Labview生成二維碼

    ?Labview 的一個(gè)Demo,生成二維碼。
    發(fā)表于 08-01 17:12 ?4次下載