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

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


咨詢
建站咨詢
