Zxing方式生产二维码方法

  1. ackage com.wmsDemo.QRCode;  

    import com.google.zxing.common.BitMatrix;  

        

     import javax.imageio.ImageIO;  

     import java.io.File;  

     import java.io.OutputStream;  

     import java.io.IOException;  

     import java.awt.image.BufferedImage;  

        

        

     public final class MatrixToImageWriter {  

        

       private static final int BLACK = 0xFF000000;  

       private static final int WHITE = 0xFFFFFFFF;  

        

       private MatrixToImageWriter() {}  

        

          

       public static BufferedImage toBufferedImage(BitMatrix matrix) {  

         int width = matrix.getWidth();  

         int height = matrix.getHeight();  

         BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);  

         for (int x = 0; x < width; x++) {  

           for (int y = 0; y < height; y++) {  

             image.setRGB(x, y, matrix.get(x, y) ? BLACK : WHITE);  

           }  

         }  

         return image;  

       }  

        

       public static void writeToFile(BitMatrix matrix, String format, File file)  

           throws IOException {  

         BufferedImage image = toBufferedImage(matrix);  

         if (!ImageIO.write(image, format, file)) {  

           throw new IOException("Could not write an image of format " + format + " to " + file);  

         }  

       }  

        

          

       public static void writeToStream(BitMatrix matrix, String format, OutputStream stream)  

           throws IOException {  

         BufferedImage image = toBufferedImage(matrix);  

         if (!ImageIO.write(image, format, stream)) {  

           throw new IOException("Could not write an image of format " + format);  

         }  

       }  

        

     }

  2.  

    package com.wmsDemo.QRCode;

    import java.io.File;

    import java.util.HashMap;

    import java.util.Map;

    import com.google.zxing.BarcodeFormat;

    import com.google.zxing.EncodeHintType;

    import com.google.zxing.MultiFormatWriter;

    import com.google.zxing.common.BitMatrix;

       

    public class Test {  

       

        /** 

         * @param args 

         * @throws Exception  

         */ 

        public static void main(String[] args){  

       

    try {

            String content = "这是测试xing二维码生成"; 

    //        String path = "D:/tt";

            String path = "D:/java/apache-tomcat-7.0.47/webapps/wmsDemo/QRCode";

            MultiFormatWriter multiFormatWriter = new MultiFormatWriter();

            Map hints = new HashMap();  

            //内容所使用编码  

            hints.put(EncodeHintType.CHARACTER_SET, "gb2312");  

            BitMatrix bitMatrix = multiFormatWriter.encode(content,BarcodeFormat.QR_CODE, 200, 200, hints);  

            //生成二维码  

            File outputFile = new File(path,"14.jpg"); 

            MatrixToImageWriter.writeToFile(bitMatrix, "jpg", outputFile);  

    } catch (Exception e) {

        e.printStackTrace();

    }

        }  

       

    }

猜你喜欢

转载自alex4java.iteye.com/blog/2292235