這篇文章給大家介紹使用Java怎么識(shí)別條形碼和二維碼,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
創(chuàng)新互聯(lián)是專業(yè)的道里網(wǎng)站建設(shè)公司,道里接單;提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行道里網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
前言
條形碼(Barcode)是將寬度不等的多個(gè)黑條和空白,按照一定的編碼規(guī)則排列,用以表達(dá)一組信息的圖形標(biāo)識(shí)符。常用于標(biāo)示物品的生產(chǎn)國、制造廠家、商品名稱、生產(chǎn)日期、圖書分類號(hào)、郵件起止地點(diǎn)、類別、日期等信息,廣泛應(yīng)用于各個(gè)領(lǐng)域。常見的包括一維條碼(條碼)、二維條碼(二維碼)、彩色條碼,在具體碼制上可分為多種不同類型的條碼,如UPC(統(tǒng)一產(chǎn)品代碼,只能以數(shù)字表示)、Code 3(能表示字母、數(shù)字和其它一些符號(hào)共43個(gè)字符)、Code 128(表示高密度數(shù)據(jù),字符串可變長,符號(hào)內(nèi)含校驗(yàn)碼)、Codabar(庫德巴碼,以起始/終止符a,b,c d四個(gè)字符、數(shù)字0 - 9,字符$、+、- 組成,可變長度,沒有校驗(yàn)位)、QR碼(呈正方形,常見以黑白兩色組成。) 、PDF417(多行組成的條形碼,可存儲(chǔ)大量數(shù)據(jù))、復(fù)合條碼(新出現(xiàn)的碼制類型,由兩個(gè)很靠近的條碼符號(hào)組成,包含互相關(guān)聯(lián)的數(shù)據(jù))等。以下內(nèi)容,將介紹通過Java程序來創(chuàng)建、讀取條碼的方法。示例要點(diǎn)包括:
創(chuàng)建一維條形碼(Barcode)
創(chuàng)建二維碼(QR Code)
讀取/識(shí)別條碼
使用工具:Free Spire.Barcode for Java (免費(fèi)版)
這里使用的工具,支持多種條碼類型,包括條形碼,二維碼和郵政碼,多達(dá)38種條碼類型,如CODE 25、CODABAR、CODE 11、INTERLEAVED 25、CODE 39、CODE 39 EXTENDED、CODE 93、CODE 93 EXTENDED、CODE 128、EAN 8、EAN 13、EAN 128、EAN 14、SCC 14、SSCC 18、ITF 14、ITF 6、UPCA、UPCE、POST NET、SINGAPORE POST 4 STATE、PLANET、MSI、RSS 14、RSS 14 TRUNCATED、RSS LIMITED、RSS EXPANDED、USPS、SWISS POST PARCEL、PZN、OPC、DEUTSCHE POST IDENTCODE、DEUTSCHE POST 、LEITCODE、ROYAL MAIL 4 STATE、DATA MATRIX、QR CODE、PDF 417、PDF 417 MACRO等,可設(shè)置條碼顏色,邊框,邊距,寬度以及各種屬性,數(shù)據(jù)樣式等等。
Jar文件獲取及導(dǎo)入:
方法1:通過官網(wǎng)下載jar文件包。下載后,解壓文件,并將lib文件夾下的Spire.Barcode.jar文件導(dǎo)入到j(luò)ava程序。參考如下導(dǎo)入效果:
方法2:可通過maven倉庫安裝導(dǎo)入??蓞⒖紝?dǎo)入方法。
Java 代碼示例
【示例1】創(chuàng)建一維條形碼
import com.spire.barcode.BarCodeGenerator; import com.spire.barcode.BarCodeType; import com.spire.barcode.BarcodeSettings; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class CreateBarcode { public static void main(String[] args) throws IOException { BarcodeSettings settings = new BarcodeSettings();//創(chuàng)建BarcodeSettings實(shí)例 settings.setType(BarCodeType.Code_128);//指定條碼類型 settings.setData("123456789");//設(shè)置條碼數(shù)據(jù) settings.setData2D("123456789");//設(shè)置條碼顯示數(shù)據(jù) settings.setShowTextOnBottom(true);//設(shè)置數(shù)據(jù)文本顯示在條碼底部 settings.setX(0.8f);//設(shè)置黑白條寬度 settings.setImageHeight(50);//設(shè)置生成的條碼圖片高度 settings.setImageWidth(70);//設(shè)置生成的條碼圖片寬度 settings.hasBorder(true);//設(shè)置邊框可見 settings.setBorderColor(new Color(135,206,250));//設(shè)置條碼邊框顏色 settings.setBorderWidth(1);//設(shè)置條碼邊框?qū)挾? settings.setBackColor(new Color(240,255,255));//設(shè)置條碼背景色 BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);//創(chuàng)建BarCodeGenerator實(shí)例 BufferedImage bufferedImage = barCodeGenerator.generateImage();//根據(jù)settings生成圖像數(shù)據(jù),保存至BufferedImage實(shí)例 ImageIO.write(bufferedImage, "png", new File("CODE128.png"));//保存條碼為PNG圖片 System.out.println("Complete!"); } }
【示例2】創(chuàng)建二維碼
import com.spire.barcode.*; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class CreateQR { public static void main(String[] args) throws IOException { BarcodeSettings settings = new BarcodeSettings();//創(chuàng)建BarcodeSettings實(shí)例 settings.setType(BarCodeType.QR_Code);//設(shè)置條碼類型為QR二維碼 settings.setData("Hello 123456789");//設(shè)置二維碼數(shù)據(jù) settings.setData2D("Hello 123456789");//設(shè)置二維碼顯示數(shù)據(jù) settings.setQRCodeDataMode(QRCodeDataMode.Alpha_Number);//設(shè)置數(shù)據(jù)類型 settings.setX(1.0f);//設(shè)置二維碼模型寬度 settings.setQRCodeECL(QRCodeECL.H);//設(shè)置二維碼糾錯(cuò)級(jí)別 settings.setImageWidth(50);//設(shè)置生成的二維碼圖片寬度 settings.setImageHeight(50);//設(shè)置生成的二維碼圖片高度 settings.hasBorder(false);//設(shè)置二維碼邊框不可見 BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);//創(chuàng)建BarCodeGenerator實(shí)例 BufferedImage bufferedImage = barCodeGenerator.generateImage();//根據(jù)settings生成圖像數(shù)據(jù),保存至BufferedImage實(shí)例 ImageIO.write(bufferedImage, "png", new File("QRCode.png"));//保存二維碼圖片為PNG格式 System.out.println("Complete!"); } }
【示例3】讀取/識(shí)別條碼
import com.spire.barcode.*; public class ScanBarcode { public static void main(String[] args) throws Exception{ //使用scan方法從圖片中識(shí)別Code 128條形碼 String[] datas = BarcodeScanner.scan("CODE128.png", BarCodeType.Code_128); System.out.print(datas[0]); } }
識(shí)別結(jié)果:
關(guān)于使用Java怎么識(shí)別條形碼和二維碼就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。