zxing代碼中core和javase模塊介紹

zxing的源碼中包含不少的模塊,模塊列表以下: java

  • core: The core image decoding library, and test code
  • javase: J2SE-specific client code
  • zxingorg: The source behind zxing.org/w
  • zxing.appspot.com: The source behind our web-based barcode generator
  • android: Android client, called Barcode Scanner
  • androidtest: Android test app
  • android-integration: Supports integration with our Barcode Scanner app via Intent
  • actionscript: partial port to Actionscript
  • glass-mirror: partial implementation for the Google Glass Mirror API
  • jruby: Ruby wrapper  
這裏主要介紹core和javase。

core爲zxing的核心代碼,包括encode和decode的代碼。 android

javase能夠定義爲一個輔助代碼,主要提供一些工具類。好比:讀取image的代碼類ImageReader、寫image到文件的類MatrixToImageWriter。充分使用zxing的javase模塊提供的工具類,既方便了代碼的編寫工做,又避免了上網找一些相似的代碼。 web

剛接觸zxing的時候,網上有說須要引用core和javase兩個模塊,作開發,可是因爲剛接觸,具體也不清楚javase的功能,作例子的時候就沒有引用javase的jar。寫了用zxing讀寫pdf417的例子以後,再看javase,發現javase中已經提供了我在網上找的代碼的功能,因而重構上篇博文提供的代碼,這裏貼出重構後的兩個類文件,讀者能夠與上篇博文中貼出的兩個類進行對比,從中體會javase模塊的好處。 ruby

ZxingPdfWrite app

package test;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URLDecoder;

import com.google.zxing.BinaryBitmap;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.client.j2se.ImageReader;
import com.google.zxing.common.HybridBinarizer;

public class ZxingPdfRead {

	/**
	 * @param args
	 * @throws IOException
	 */
	public static void main(String[] args) throws Exception {
		try {
			File testImage = new File(
					"E:\\work\\all_workspace\\wp_zxing\\barcode4jTest\\src\\test\\helloworld.png");
			BufferedImage image = ImageReader.readImage(testImage);
			LuminanceSource source = new BufferedImageLuminanceSource(image);
			BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
			Result result = new MultiFormatReader().decode(bitmap);

			String resultText = result.getText();

			System.out.println("resultText:"
					+ URLDecoder.decode(resultText, "UTF-8"));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
ZxingPdfWrite

package test;

import java.io.File;
import java.net.URLEncoder;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.pdf417.PDF417Writer;

public class ZxingPdfWrite {

	/**
	 * @param args
	 * @throws WriterException
	 */
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		PDF417Writer pdf417Writer = new PDF417Writer();
		//注意中文亂碼問題
		BitMatrix bitMatrix = pdf417Writer.encode(URLEncoder.encode("我是中國人","UTF-8"),
				BarcodeFormat.PDF_417, 100, 50);
		
		MatrixToImageWriter.writeToFile(bitMatrix, "png", new File("E:\\work\\all_workspace\\wp_zxing\\barcode4jTest\\src\\test\\helloworld.png"));
	}
}
相關文章
相關標籤/搜索