新聞中心
在現(xiàn)代社會(huì)中,條形碼和二維碼已經(jīng)成為我們生活中的常見(jiàn)元素。它們可以用于商品的管理,也可以用于個(gè)人信息的分享。對(duì)于諸如超市、商場(chǎng)、圖書館等地方,條形碼和二維碼已經(jīng)成為了常見(jiàn)的掃描方式。而在Linux系統(tǒng)中,我們可以輕松使用ZBar這個(gè)開(kāi)源軟件來(lái)進(jìn)行掃描。本文將帶您一起探索ZBar這個(gè)開(kāi)源軟件,以及如何在Linux系統(tǒng)中輕松掃描條形碼和二維碼。

什么是ZBar?
ZBar是一種開(kāi)源軟件,用于在圖像中解碼條形碼和二維碼。它是由Jeff Brown于2023年創(chuàng)建的,旨在提供一種開(kāi)放標(biāo)準(zhǔn)的二維碼掃描器。目前,它已經(jīng)被廣泛運(yùn)用于Linux等各種操作系統(tǒng)中,而且它的使用方法也十分簡(jiǎn)單。我們可以在Linux系統(tǒng)中通過(guò)安裝ZBar軟件包并使用命令行或者腳本來(lái)輕松掃描并識(shí)別出不同類型的條形碼和二維碼。
如何安裝ZBar?
在Linux系統(tǒng)中,我們可以通過(guò)軟件包管理器來(lái)安裝ZBar軟件包。以下是在Ubuntu系統(tǒng)中安裝ZBar的命令:
$ sudo apt-get update
$ sudo apt-get install zbar-tools
或者在CentOS系統(tǒng)中安裝ZBar的命令:
$ sudo yum install zbar-tools
安裝完成后,我們可以通過(guò)以下命令來(lái)檢查是否已經(jīng)成功安裝:
$ zbarcam –version
如果顯示出當(dāng)前ZBar的版本號(hào),那么就說(shuō)明ZBar已經(jīng)成功安裝啦!
如何使用ZBar掃描條形碼和二維碼?
在Linux系統(tǒng)中,我們可以使用ZBar軟件包提供的命令行工具來(lái)掃描條形碼和二維碼。以下是一些常用的命令:
– zbarcam:用于實(shí)時(shí)掃描條形碼和二維碼
– zbarimg:用于從文件中掃描條形碼和二維碼
– zbarcam –raw:返回純文本結(jié)果而非圖形界面輸出
– zbarcam –nodisplay:不顯示攝像頭的圖像,僅返回結(jié)果
下面我們將詳細(xì)介紹如何使用這些命令來(lái)掃描條形碼和二維碼。
在終端中實(shí)時(shí)掃描條形碼和二維碼
要在終端中實(shí)時(shí)掃描條形碼和二維碼,我們可以使用zbarcam命令。在終端中輸入以下命令:
$ zbarcam
然后,我們的攝像頭就會(huì)自動(dòng)開(kāi)始工作,等待我們將條形碼和二維碼對(duì)準(zhǔn)它。在掃描完成后,我們可以從終端中看到掃描器捕捉到的圖像以及解碼結(jié)果。
要關(guān)閉掃描器,我們可以按下CTRL+C鍵。
這是一個(gè)非常簡(jiǎn)單的方法來(lái)掃描條形碼和二維碼,同時(shí)也非常適合在交互式環(huán)境中使用。但不可避免地,使用zbarcam命令進(jìn)行實(shí)時(shí)掃描時(shí)需要使用鼠標(biāo)或手動(dòng)調(diào)整相機(jī)位置,因此不太適合于批量掃描。
從圖像文件中掃描條形碼和二維碼
除了在終端中實(shí)時(shí)掃描條形碼和二維碼之外,我們還可以通過(guò)zbarimg命令來(lái)從圖像文件中掃描。以下是一個(gè)使用zbarimg命令來(lái)掃描單個(gè)圖像文件的例子:
$ zbarimg /path/to/image.jpg
掃描成功后,我們可以從終端中看到識(shí)別出的條形碼和二維碼的內(nèi)容。
如果我們想要在多個(gè)圖片文件中搜索條形碼和二維碼,我們可以通過(guò)下面的例子來(lái)做到:
$ find /path/to/images -name “*.jpg” | xargs -n1 zbarimg
這個(gè)命令將逐個(gè)尋找目標(biāo)文件夾中的所有jpg文件,然后使用zbarimg命令來(lái)掃描它們,并將結(jié)果輸出到終端中。我們可以根據(jù)需要使用-x選項(xiàng)指定相應(yīng)的掃描器。
掃描圖像并輸出純文本結(jié)果
要輸出識(shí)別出的條形碼和二維碼的純文本內(nèi)容,我們可以使用zbarcam命令的–raw選項(xiàng)。例如,以下命令將返回?cái)z像頭掃描到的最近的條形碼和二維碼的結(jié)果:
$ zbarcam –raw
這個(gè)命令可以獲得非常簡(jiǎn)潔的結(jié)果,只包含條形碼和二維碼的文本內(nèi)容,而沒(méi)有其他的圖像或輸出信息。這樣我們就可以更加方便地對(duì)掃描結(jié)果進(jìn)行進(jìn)一步的處理。
不顯示圖像界面,僅返回結(jié)果
在某些情況下,我們可能只想獲得掃描結(jié)果而不需要攝像頭的實(shí)時(shí)輸出。zbarcam命令提供了–nodisplay選項(xiàng)來(lái)支持這一需求。以下是使用–nodisplay選項(xiàng)來(lái)進(jìn)行掃描的命令:
$ zbarcam –nodisplay
這個(gè)命令將不會(huì)在終端中顯示圖像界面,只會(huì)輸出純文本類似于–raw選項(xiàng)的方式,將掃描結(jié)果輸出到終端中。
總體評(píng)價(jià)
ZBar是一個(gè)十分方便的工具,能夠在Linux系統(tǒng)上輕松掃描條形碼和二維碼。其能較好地支持不同類型的碼,包括二維碼、條形碼以及PDF417等等。此外,它還能夠輸出純文本結(jié)果,相當(dāng)靈活。
使用ZBar非常簡(jiǎn)單,無(wú)論是在終端中實(shí)時(shí)掃描還是從圖像文件中掃描。通過(guò)它,我們能夠輕松地識(shí)別出各種類型的條形碼和二維碼,并且它還可以靈活地進(jìn)行批量掃描和處理,非常方便。
相關(guān)問(wèn)題拓展閱讀:
- linux 下編譯zbar時(shí)出現(xiàn)問(wèn)題求助 video support failed
linux 下編譯zbar時(shí)出現(xiàn)問(wèn)題求助 video support failed
ZBar 有個(gè)問(wèn)題,對(duì)于中文二維碼的支持經(jīng)常出現(xiàn)亂碼。ZBar 缺省支持 SHIF-JIS, UTF-8, ISO,但是不支持 GB18030,而很多生成的二維碼都是 GB18030 (或者 GBK, GB2312)的,所以 ZBar 解碼出來(lái)就直接亂碼了
這個(gè)修改或友罩其實(shí)很簡(jiǎn)單,只需要修改一個(gè)文件就可以了,見(jiàn)下面代碼。
zbar/qrcode/qrdectxt.c Objective-C
intqr_code_data_list_extract_text(constqr_code_data_list*_qrlist,
zbar_image_scanner_t*iscn,
zbar_image_t*img)
{
iconv_tsjis_cd;
iconv_tutf8_cd;
iconv_tlatin1_cd;
constqr_code_data *qrdata;
int nqrdata;
unsignedchar *mark;
int ntext;
int i;
qrdata=_qrlist->qrdata;
nqrdata=_qrlist->nqrdata;
mark=(unsignedchar*)calloc(nqrdata,sizeof(*mark));
ntext=0;
/ 重點(diǎn)在這里,我們衫鬧不要 ISO8859-1,直接換成 GB18030 就可以了
//latin1_cd=iconv_open(“UTF-8″,”ISO8859-1”);
latin1_cd=iconv_open(“UTF-8″,”GB18030”);
sjis_cd=iconv_open(“UTF-8″,”SJIS”);
utf8_cd=iconv_open(“UTF-8″,”UTF-8”);
我們下載的iphone zbar sdk 里并沒(méi)有這個(gè)文件,只有l(wèi)ibzbar.a這告賀就需要我們用源碼重新編譯libzbar.a
ZBar 有個(gè)問(wèn)題,對(duì)于中文二維碼的支持經(jīng)常出現(xiàn)亂碼。ZBar 缺省支持 SHIF-JIS, UTF-8, ISO,但是不支持 GB18030,而很多生成的二維碼都是 GB18030 (或者 GBK, GB2312)的,所以 ZBar 解碼出來(lái)就告賀直接亂碼了
這個(gè)修改其實(shí)很簡(jiǎn)單,只需要修改一個(gè)文件就可以了,見(jiàn)下面代碼?;蛴颜?/p>
zbar/qrcode/qrdectxt.c Objective-C
intqr_code_data_list_extract_text(constqr_code_data_list*_qrlist,
zbar_image_scanner_t*iscn,
zbar_image_t*img)
{
iconv_tsjis_cd;
iconv_tutf8_cd;
iconv_tlatin1_cd;
constqr_code_data *qrdata;
int nqrdata;
unsignedchar *mark;
int ntext;
int i;
qrdata=_qrlist->qrdata;
nqrdata=_qrlist->nqrdata;
mark=(unsignedchar*)calloc(nqrdata,sizeof(*mark));
ntext=0;
/ 重點(diǎn)在這里,我們不要 ISO8859-1,直接換衫鬧成 GB18030 就可以了
//latin1_cd=iconv_open(“UTF-8″,”ISO8859-1”);
latin1_cd=iconv_open(“UTF-8″,”GB18030”);
sjis_cd=iconv_open(“UTF-8″,”SJIS”);
utf8_cd=iconv_open(“UTF-8″,”UTF-8”);
我們下載的iphone zbar sdk 里并沒(méi)有這個(gè)文件,只有l(wèi)ibzbar.a這就需要我們用源碼重新編譯libzbar.a
linux zbar的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux zbar,探索Linux中的ZBar:輕松掃描條形碼和二維碼,linux 下編譯zbar時(shí)出現(xiàn)問(wèn)題求助 video support failed的信息別忘了在本站進(jìn)行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
分享文章:探索Linux中的ZBar:輕松掃描條形碼和二維碼(linuxzbar)
文章分享:http://www.dlmjj.cn/article/dhehejj.html


咨詢
建站咨詢
