欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java創(chuàng)建、識別條形碼和二維碼方法示例

 更新時間:2019年09月16日 15:25:49   作者:E-iceblue  
這篇文章主要給大家介紹了關于Java創(chuàng)建、識別條形碼和二維碼的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

前言

條形碼(Barcode)是將寬度不等的多個黑條和空白,按照一定的編碼規(guī)則排列,用以表達一組信息的圖形標識符。常用于標示物品的生產國、制造廠家、商品名稱、生產日期、圖書分類號、郵件起止地點、類別、日期等信息,廣泛應用于各個領域。常見的包括一維條碼(條碼)、二維條碼(二維碼)、彩色條碼,在具體碼制上可分為多種不同類型的條碼,如UPC(統(tǒng)一產品代碼,只能以數字表示)、Code 3(能表示字母、數字和其它一些符號共43個字符)、Code 128(表示高密度數據,字符串可變長,符號內含校驗碼)、Codabar(庫德巴碼,以起始/終止符a,b,c d四個字符、數字0 - 9,字符$、+、- 組成,可變長度,沒有校驗位)、QR碼(呈正方形,常見以黑白兩色組成。) 、PDF417(多行組成的條形碼,可存儲大量數據)、復合條碼(新出現的碼制類型,由兩個很靠近的條碼符號組成,包含互相關聯(lián)的數據)等。以下內容,將介紹通過Java程序來創(chuàng)建、讀取條碼的方法。示例要點包括:

  • 創(chuàng)建一維條形碼(Barcode)
  • 創(chuàng)建二維碼(QR Code)
  • 讀取/識別條碼

使用工具:Free Spire.Barcode for Java (免費版)

這里使用的工具,支持多種條碼類型,包括條形碼,二維碼和郵政碼,多達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等,可設置條碼顏色,邊框,邊距,寬度以及各種屬性,數據樣式等等。

Jar文件獲取及導入:

方法1:通過官網下載jar文件包。下載后,解壓文件,并將lib文件夾下的Spire.Barcode.jar文件導入到java程序。參考如下導入效果:

 

方法2:可通過maven倉庫安裝導入??蓞⒖?a rel="external nofollow" target="_blank" >導入方法。

 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實例
    settings.setType(BarCodeType.Code_128);//指定條碼類型
    settings.setData("123456789");//設置條碼數據
    settings.setData2D("123456789");//設置條碼顯示數據
    settings.setShowTextOnBottom(true);//設置數據文本顯示在條碼底部
    settings.setX(0.8f);//設置黑白條寬度
    settings.setImageHeight(50);//設置生成的條碼圖片高度
    settings.setImageWidth(70);//設置生成的條碼圖片寬度
    settings.hasBorder(true);//設置邊框可見
    settings.setBorderColor(new Color(135,206,250));//設置條碼邊框顏色
    settings.setBorderWidth(1);//設置條碼邊框寬度
    settings.setBackColor(new Color(240,255,255));//設置條碼背景色

    BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);//創(chuàng)建BarCodeGenerator實例
    BufferedImage bufferedImage = barCodeGenerator.generateImage();//根據settings生成圖像數據,保存至BufferedImage實例
    ImageIO.write(bufferedImage, "png", new File("CODE128.png"));//保存條碼為PNG圖片
    System.out.println("Complete!");
  }
}

條碼創(chuàng)建效果:

 

【示例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實例
    settings.setType(BarCodeType.QR_Code);//設置條碼類型為QR二維碼
    settings.setData("Hello 123456789");//設置二維碼數據
    settings.setData2D("Hello 123456789");//設置二維碼顯示數據
    settings.setQRCodeDataMode(QRCodeDataMode.Alpha_Number);//設置數據類型
    settings.setX(1.0f);//設置二維碼模型寬度
    settings.setQRCodeECL(QRCodeECL.H);//設置二維碼糾錯級別
    settings.setImageWidth(50);//設置生成的二維碼圖片寬度
    settings.setImageHeight(50);//設置生成的二維碼圖片高度
    settings.hasBorder(false);//設置二維碼邊框不可見

    BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);//創(chuàng)建BarCodeGenerator實例
    BufferedImage bufferedImage = barCodeGenerator.generateImage();//根據settings生成圖像數據,保存至BufferedImage實例
    ImageIO.write(bufferedImage, "png", new File("QRCode.png"));//保存二維碼圖片為PNG格式
    System.out.println("Complete!");
  }
}

二維碼創(chuàng)建效果:

 

【示例3】讀取/識別條碼

import com.spire.barcode.*;

public class ScanBarcode {
  public static void main(String[] args) throws Exception{
    //使用scan方法從圖片中識別Code 128條形碼
    String[] datas = BarcodeScanner.scan("CODE128.png", BarCodeType.Code_128);
    System.out.print(datas[0]);
  }
}

識別結果:

 

(本文完)

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

相關文章

  • swagger注解@ApiModelProperty失效情況的解決

    swagger注解@ApiModelProperty失效情況的解決

    這篇文章主要介紹了swagger注解@ApiModelProperty失效情況的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java中數學相關類的使用教程

    Java中數學相關類的使用教程

    Java是一種廣泛使用的編程語言,它提供了許多數學運算的函數和方法,使得開發(fā)者可以輕松地進行各種數學計算,下面這篇文章主要給大家介紹了關于Java中數學相關類使用的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • springboot 使用Spring Boot Actuator監(jiān)控應用小結

    springboot 使用Spring Boot Actuator監(jiān)控應用小結

    本篇文章主要介紹了springboot 使用Spring Boot Actuator監(jiān)控應用小結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • 解決Mybatis?plus實體類屬性與表字段不一致的問題

    解決Mybatis?plus實體類屬性與表字段不一致的問題

    這篇文章主要介紹了Mybatis?plus實體類屬性與表字段不一致解決方法,文末給大家提到了Mybatis-plus中數據庫表名和表字段名的相關知識,需要的朋友可以參考下
    2022-07-07
  • Java線程中的Thread.yield()詳細解析

    Java線程中的Thread.yield()詳細解析

    這篇文章主要介紹了Java線程中的Thread.yield()詳細解析,yield()讓當前線程從運行狀態(tài)?轉為?就緒狀態(tài),以允許具有相同優(yōu)先級的其他線程獲得運行機會,需要的朋友可以參考下
    2023-11-11
  • java 指定某個jdk版本方法

    java 指定某個jdk版本方法

    這篇文章主要介紹了java 指定某個jdk版本方法的相關資料,需要的朋友可以參考下
    2017-05-05
  • 在logback.xml中自定義動態(tài)屬性的方法

    在logback.xml中自定義動態(tài)屬性的方法

    這篇文章主要介紹了在logback.xml中自定義動態(tài)屬性的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • 一文讓你徹底明白Java中的值傳遞和引用傳遞

    一文讓你徹底明白Java中的值傳遞和引用傳遞

    這篇文章主要給大家介紹了關于Java中值傳遞和引用傳遞的相關資料,值傳遞是指在調用函數時將實際參數復制一份傳遞到函數中,引用傳遞是指在調用函數時將實際參數的引用直接傳遞到函數中,需要的朋友可以參考下
    2023-10-10
  • Java Web項目中Spring框架處理JSON格式數據的方法

    Java Web項目中Spring框架處理JSON格式數據的方法

    Spring MVC是個靈活的框架,返回JSON數據的也有很多五花八門的方式,這里我們來整理一個最簡單的Java Web項目中Spring框架處理JSON格式數據的方法:
    2016-05-05
  • JVM內存區(qū)域劃分相關原理詳解

    JVM內存區(qū)域劃分相關原理詳解

    這篇文章主要介紹了JVM內存區(qū)域劃分相關原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10

最新評論