首页 > 代码库 > 二维码的生成

二维码的生成

package liupeng;
import java.io.File;
import org.json.JSONException;
import org.json.JSONObject;
public class Test {
	/**
	 * 描述:二维码的生成
	 * @author liupeng
	 * @param args
	 * @throws JSONException 
	 */
	public static void main(String[] args) throws JSONException {
		JSONObject obj = new JSONObject();
		obj.put("name", "liupeng");
		obj.put("age", 22);
		obj.put("school", "[盐城师范学院]信息科学与技术学院->软件工程");
		//String tomcatRoot = httpRequest.getSession().getServletContext().getRealPath("/SealAndSignImages");
		//String path = QRCodeOperator.MakeQRCode(tomcatRoot,"刘鹏的二维码", obj.toString());
		String path = QRCodeOperator.MakeQRCode("F:"+File.separator,"刘鹏的二维码", obj.toString());
		if(path != ""){
			System.out.println("二维码内容为:"+obj.toString());
		}
	}

}



package liupeng;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.Binarizer;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.EncodeHintType;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.Result;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
public class QRCodeOperator {
	/**
	 * 生成二维码
	 * @param name 二维码文件名称(不带后缀)
	 * @param content 二维码内容
	 * @return 二维码图片路径
	 */
	public static String MakeQRCode(String filepath,String name, String content){
		String retPath = "";
		try {
            
		     //String content = "120605181003;http://www.cnblogs.com/jtmjx";
		     //String path = FileOperator.getRootPath();
			String path = filepath;//httpRequest.getSession().getServletContext().getRealPath("/SealAndSignImages");
		     
		     MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
		     
		     Map hints = new HashMap();
		     hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
		     BitMatrix bitMatrix = multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, 200, 200,hints);
		     File file1 = new File(path, name+".jpg");
		     MatrixToImageWriter.writeToFile(bitMatrix, "jpg", file1);
		     retPath = file1.getAbsolutePath();
		 } catch (Exception e) {
		     e.printStackTrace();
		 }
		return retPath;
	}
	public static void AnalysisQRCode(){
		try {
            MultiFormatReader formatReader = new MultiFormatReader();
			String filePath = "F:/Users/Administrator/Desktop/testImage/test.jpg";
			File file = new File(filePath);
			BufferedImage image = ImageIO.read(file);;
			LuminanceSource source = new BufferedImageLuminanceSource(image);
			Binarizer  binarizer = new HybridBinarizer(source);
			BinaryBitmap binaryBitmap = new BinaryBitmap(binarizer);
			Map hints = new HashMap();
			hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
			Result result = formatReader.decode(binaryBitmap,hints);
			
			System.out.println("result = "+ result.toString());
			System.out.println("resultFormat = "+ result.getBarcodeFormat());
			System.out.println("resultText = "+ result.getText());
			            
		} 
		catch (Exception e) {
			e.printStackTrace();
		}
	}
}


package liupeng;
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);
    }
  }

}




注意:需要导入org.json.jar和zxing-core-2.0.jar