java 条形码 解析条形码

来源:互联网 发布:人工智能会替代人类吗 编辑:程序博客网 时间:2024/05/19 22:57

一个比较好的2d条形码解析条码的工具库 
从ZXING 中剥离出来的
测试了一下,还可以,基本上清晰图片都可以识别

 

  1. import java.awt.Frame;  
  2. import java.awt.Graphics2D;  
  3. import java.awt.Image;  
  4. import java.awt.MediaTracker;  
  5. import java.awt.image.BufferedImage;  
  6.   
  7. import com.google.zxing.MonochromeBitmapSource;  
  8. import com.google.zxing.MultiFormatReader;  
  9. import com.google.zxing.Reader;  
  10. import com.google.zxing.ReaderException;  
  11. import com.google.zxing.Result;  
  12. import com.google.zxing.client.j2se.BufferedImageMonochromeBitmapSource;  
  13.   
  14.   
  15. public class CodeReader {  
  16.   
  17.     /** 
  18.      * @param args 
  19.      * @throws ReaderException  
  20.      * @throws InterruptedException  
  21.      */  
  22.     public static void main(String[] args) throws ReaderException, InterruptedException {  
  23.         Reader reader = new MultiFormatReader();  
  24.         String imgPath =   
  25.             "test.jpg";  
  26.         Image image=java.awt.Toolkit.getDefaultToolkit().getImage(imgPath);  
  27.         BufferedImage myImage = CodeReader.imageToBufImage(image);  
  28.         MonochromeBitmapSource source = new BufferedImageMonochromeBitmapSource(myImage);  
  29.         Result result = reader.decode(source);  
  30.         System.out.println(result.getText());  
  31.     }  
  32.     public static BufferedImage imageToBufImage(Image image) throws InterruptedException{  
  33.         MediaTracker mt=new MediaTracker(new Frame());    
  34.         mt.addImage(image,0);    
  35.         mt.waitForID(0);    
  36.         BufferedImage bufImage=new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_BGR);    
  37.         Graphics2D   g2d=bufImage.createGraphics();    
  38.         g2d.drawImage(image,0,0,null);   
  39.         return bufImage;  
  40.     }  
  41.   
  42. }