zoukankan      html  css  js  c++  java
  • java 通过zxing生成二维码

    1.基本类提供二维码生成工具类

    package com.green.util;
    
    import java.awt.image.BufferedImage;
    import java.io.ByteArrayOutputStream;
    import java.io.File;
    import java.io.IOException;
    import java.io.OutputStream;
    
    import javax.imageio.ImageIO;
    
    import com.google.zxing.common.BitMatrix;
    
    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 byte[] writeToStream(BitMatrix matrix, String format) throws IOException {
    		ByteArrayOutputStream stream=new ByteArrayOutputStream();
    		BufferedImage image = toBufferedImage(matrix);
    	
    		if (!ImageIO.write(image, format, stream)) {
    			throw new IOException("Could not write an image of format " + format);
    		}
    	
    		return stream.toByteArray();
    	}
    
    }
    

      2.调用工具方法获取图片的二进制

    package com.green.util;
    
    import java.io.File;
    import java.io.IOException;
    import java.util.Hashtable;
    
    import com.google.zxing.BarcodeFormat;
    import com.google.zxing.EncodeHintType;
    import com.google.zxing.MultiFormatWriter;
    import com.google.zxing.WriterException;
    import com.google.zxing.common.BitMatrix;
    
    /**
     * @author maybo
     *
     */
    public class QrCodeGenerator {
    	public static byte[] build(String content) throws IOException, WriterException {
    	        int width = 300; 
    	        int height = 300; 
    	        //��ά���ͼƬ��ʽ 
    	        String format = "gif"; 
    	        Hashtable hints = new Hashtable(); 
    	        //������ʹ�ñ��� 
    	        hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); 
    	        BitMatrix bitMatrix = new MultiFormatWriter().encode(content, 
    	                BarcodeFormat.QR_CODE, width, height, hints); 
    	       return MatrixToImageWriter.writeToStream(bitMatrix, format);
    	}
    }
    

      

  • 相关阅读:
    ACM的算法分类 2015-04-16 14:25 22人阅读 评论(0) 收藏
    初学Larevel 2014-08-21 11:24 90人阅读 评论(0) 收藏
    初学PHP&MySQL 2014-05-31 12:40 92人阅读 评论(0) 收藏
    codeforces 570 E. Pig and Palindromes (dp)
    codeforces 570 D. Tree Requests (dfs序)
    poj 2157 Maze (bfs)
    cf 570 C. Replacement (暴力)
    cf 570B B. Simple Game(构造)
    cf 570 A. Elections
    hdu 1429胜利大逃亡(续) (bfs+状态压缩)
  • 原文地址:https://www.cnblogs.com/maybo/p/5183740.html
Copyright © 2011-2022 走看看