zxing的源碼中包含不少的模塊,模塊列表以下: java
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")); } }