1. 程式人生 > >java生成條碼並解析條碼

java生成條碼並解析條碼

package com.lyy.util;

import java.awt.Frame;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;

import org.jbarcode.JBarcode;
import org.jbarcode.encode.Code128Encoder;
import org.jbarcode.encode.EAN13Encoder;
import org.jbarcode.encode.EAN8Encoder;
import org.jbarcode.encode.InvalidAtributeException;
import org.jbarcode.encode.UPCAEncoder;
import org.jbarcode.paint.EAN13TextPainter;
import org.jbarcode.paint.EAN8TextPainter;
import org.jbarcode.paint.UPCATextPainter;
import org.jbarcode.paint.WidthCodedPainter;
import org.jbarcode.util.ImageUtil;

import com.google.zxing.BinaryBitmap;
import com.google.zxing.BlackPointEstimationMethod;
import com.google.zxing.ChecksumException;
import com.google.zxing.FormatException;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MonochromeBitmapSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.NotFoundException;
import com.google.zxing.Reader;
import com.google.zxing.ReaderException;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.BaseMonochromeBitmapSource;
import com.google.zxing.common.BitArray;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
/**
 * 利用jbarcode生成各種條形碼!
 * 利用zxing解析生成的條碼
 * @author lyy
 * 
 */
public class BarcodeUtil {
    //生成EAN8條碼
	public static void build8barcode(){
		JBarcode jBarcode = new JBarcode(EAN8Encoder.getInstance(),
				WidthCodedPainter.getInstance(), EAN8TextPainter.getInstance());
		String str = "5201314";
		BufferedImage bufferedImage = null;
		try {
			bufferedImage = jBarcode.createBarcode(str);

			FileOutputStream fileOutputStream = new FileOutputStream("F:"
					+ File.separator + "file_util" + File.separator
					+ "test.jpg");
			ImageUtil.encodeAndWrite(bufferedImage, "jpeg", fileOutputStream);
			System.out.println("ok");
			fileOutputStream.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
    //生成EAN13條碼
	public static void build13barcode(){
		JBarcode jBarcode=new  JBarcode(EAN13Encoder.getInstance(),
				WidthCodedPainter.getInstance(), EAN13TextPainter.getInstance());
		String str = "110802141314";
		System.out.println(str);
		BufferedImage bufferedImage = null;
		try {
			bufferedImage = jBarcode.createBarcode(str);

			FileOutputStream fileOutputStream = new FileOutputStream("F:"
					+ File.separator + "file_util" + File.separator
					+ "test13.jpg");
			ImageUtil.encodeAndWrite(bufferedImage, "jpeg", fileOutputStream);
			System.out.println("ok");
			fileOutputStream.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
    //解析條碼
	public static void parseBarcode(){
		Reader reader=new MultiFormatReader();
		String filename="F:"+ File.separator + "file_util" + File.separator
				+ "test.jpg";
		Image image= Toolkit.getDefaultToolkit().getImage(filename);
		
		MediaTracker mediaTracker=new MediaTracker(new Frame());
		mediaTracker.addImage(image, 0);
		BufferedImage bufferedImage=null;
		try {
			mediaTracker.waitForID(0);
			bufferedImage=new BufferedImage(image.getWidth(null),image.getHeight(null), BufferedImage.TYPE_INT_BGR);
			bufferedImage.createGraphics().drawImage(image,0,0,null);;
			LuminanceSource source=new BufferedImageLuminanceSource(bufferedImage);
			BinaryBitmap binaryBitmap= new BinaryBitmap(new HybridBinarizer(source));
			Result result=reader.decode(binaryBitmap);
			System.out.println("解析得到的條碼值為:"+result.getText());
		} catch (InterruptedException | NotFoundException | ChecksumException | FormatException e) {
			e.printStackTrace();
		}
	}
	public static void main(String[] args) {
		build8barcode();
		build13barcode();
		 parseBarcode();
	}
}









相關推薦

java生成條碼解析條碼

package com.lyy.util; import java.awt.Frame; import java.awt.Image; import java.awt.MediaTracker; import java.awt.Toolkit; import java.aw

JAVA -- 生成Excel 上傳到 FTP 不生成本地檔案

直接上程式碼 POM.XML 這裡只是主要的jar <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --> <dependency> <groupId>

JAVA -- 生成CSV上傳到 FTP 不生成本地檔案

直接上程式碼 POM.XML 這裡只是主要的jar <dependency> <groupId>net.sf.supercsv</groupId> <artifactId>super-csv</artifactId

JAVA 生成隨機數 根據概率 比率

                做一個翻寶程式,通過返回數字0-5來判斷中獎情況,012345,這幾個數字的出現的概率是0出現最高,1出現比0少,2出現比1少,依次下去/** * JAVA 返回隨機數,並根據概率、比率 * @author zhanglei * */public class MathRando

Java讀取Excel解析文字(格式化輸出)

說明 最近在做一個比較小型的網站,需要批量匯入註冊使用者.使用者的資訊寫在一張excel表格裡面. 所以就需要讀取excel.所以就記錄下遇到的問題,以及以後檢視. 相關技術

Java生成條碼二維碼

test debugging 二維碼 bsp 格式 binary 輸出 nbsp googl 一、概述 可用barcode4j或zxing等第三方庫,推薦zxing。 barcode4j資料鏈接:http://barcode4j.sourceforge.net/ zx

JAVA生成條碼(jbarcode)

條碼技術在現在的應用非常廣泛,幾乎所有的商品包裝上都會印有條形碼,這一篇將通過例項演示JAVA如何生成條碼,需要使用的第三方包為:jbarcode import java.awt.image.BufferedImage; import java.io.Fi

Java中讀取XML檔案,生成XML格式的字串解析這個字串

由於最近要用的是XML格式的字串,而不用寫到檔案中,所以對原始程式碼進行了修改如下: 要讀的xml檔案 <?xml version="1.0" encoding="GB2312"?> <學生花名冊> <學生 性別 = "男">

java生成二維碼解析二維碼(QRCode方式)

準備工作  下載jar http://www.swetake.com/qrcode/java/qr_java.html https://zh.osdn.net/projects/qrcode/downloads/28391/qrcode.zip/ jar下載完畢後新建專案

POI以SAX方式解析Excel2007大文件(包含空單元格的處理) Java生成CSV文件實例詳解

arraylist api csdn false gif pac apache all top http://blog.csdn.net/l081307114/article/details/46009015 http://www.cnblogs.com/dreammyl

Java生成打印二維碼

else clas html4 bar output ans utf-8 orm 二維 本次做訂餐系統中,需要用到在Java生成二維碼,並在jsp頁面打印並輸出,其中在action中生成二維碼. 關鍵代碼如下 1 public void reWeiMa() throws

java生成自增流水號,從每月第一天重新清零計數(原創)

equals code ext 數據庫操作 get color mage 隨機數 static 如果你不想在數據庫操作的話,這裏有個方法可以一試,直接上代碼: package com.seawin.common.util.convert; import java.te

java 生成解析xml

img use public set odin 實現 etag system Coding 本文主要使用的是Jdom.jar包(包的下載百度一下)實現了生成xml文件和解析xml文件 下面是生成xml的實現 說明:stuLists集合是一個存放著Student對象的集合

java生成解析二維碼

ade ted image def eat tro per buffer could 前言 現在,二維碼的應用已經非常廣泛,在線生成器也是諸多,隨手生成。 所以就和大家分享一個小案例,用zxing來做一個的二維碼生成器,當然這個例子是比較簡單,若是寫的不好請多多包涵。

JAVA生成一個二維數組,使中間元素不與相鄰的9個元素相等,限制每一個元素的個數

map 個數 nta nds put 可用 dom mov wid JAVA生成一個二維數組,使中間元素不與相鄰的9個元素相等,並限制每一個元素的個數 示例如下 至少需要九個元素:"A","B","C","D","E","F","G","H","I" 我們打印一個30*15

Java上傳Excel解析

err com XML ger exc try finally write else 1.上傳: public String uploadFile(CommonsMultipartFile file,String uploadPath,String realUploadP

Android PDA掃描槍廣播接搜條碼使用

amp gets filter 般的 protected eat art nop min 在開發掃描槍掃碼接收廣播條碼的時候,由於廠商如shit般的文檔和對Anroid基礎知識的缺失,走了一些彎路,以下是廣播接收條碼並使用的代碼實現 : 1 : 動態註冊廣播

Java生成Pdf對Pdf內容操作

enc images sub als tar 應用 throw mave add 雖說網上有很多可以在線導出Pdf或者word或者轉成png等格式的工具,但是我覺得還是得了解知道是怎麽實現的。一來,在線免費轉換工具,是有容量限制的,達到一定的容量時,是不能成功導出的;二來,

java HttpClient 訪問webservice解析返回資料

關於webservice的普及就不多說了,直接進入主題吧。 1.導包 <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient HttpClient相關包-->

java生成二維碼/java解析二維碼

text level hang err 定義 image binary port style 二維碼的優缺點     優點:1. 高密度編碼,信息容量大;2.編碼範圍廣;3.容錯能力強;4.譯碼可靠性高;5.可引入加密措施;6.成本低,易制作,持久耐用。     缺點: