1.在maven中添加谷歌zxing jar的依赖
<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.0.0</version> </dependency>
2.代码
package com.royalnu.origin.module.ori.utils; import java.awt.image.BufferedImage; import java.io.File; import java.util.Hashtable; import javax.imageio.ImageIO; import org.springframework.beans.factory.annotation.Value; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; public class QrCodeUtil { private static final String CHARSET = "utf-8"; private static final String FORMAT_NAME = "JPG"; /** * 生成带二维码,并保存到磁盘 * @param content 源内容 * @param imgPath 生成二维码保存的路径 * @param needCompress 是否要压缩 * @param number 编号(以此命名图片) * @return boolean值 * @throws Exception */ @SuppressWarnings({ "rawtypes", "unchecked", "unused" }) public static Boolean createImage(String content, String imgPath,String number,Integer qrCodeSize,boolean needCompress) throws Exception { Hashtable hints = new Hashtable(); hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); hints.put(EncodeHintType.CHARACTER_SET, CHARSET); hints.put(EncodeHintType.MARGIN, 1); BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, qrCodeSize, qrCodeSize,hints); int width = bitMatrix.getWidth(); int height = bitMatrix.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, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF); } } String fileName =number+ ".jpg"; File file = new File(imgPath + "/" + fileName); if(!file.exists()){ file.mkdirs(); } return ImageIO.write(image, FORMAT_NAME, file); } // public static void main(String[] args) throws Exception { // // QrCodeUtil util = new QrCodeUtil(); // // //生成不带logo 的二维码 // String textt = "http://www.baidu.com"; // util.createImage(textt, "d:\\", "345", true); // // // } }
参考资料:http://blog.csdn.net/wangnan537/article/details/50353174
http://tec.5lulu.com/detail/110d4n2ehcg9a857d.html