12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package cn.efunbox.manage.base.util;
- import com.google.zxing.BarcodeFormat;
- import com.google.zxing.EncodeHintType;
- import com.google.zxing.MultiFormatWriter;
- import com.google.zxing.WriterException;
- import com.google.zxing.client.j2se.MatrixToImageWriter;
- import com.google.zxing.common.BitMatrix;
- import sun.misc.BASE64Encoder;
- import javax.imageio.ImageIO;
- import java.awt.image.BufferedImage;
- import java.io.ByteArrayOutputStream;
- import java.io.IOException;
- import java.util.Hashtable;
- public class QRCodeUtil {
- /**
- * 根据内容,生成指定宽高、指定格式的二维码图片
- *
- * @param url 内容
- * @return 生成的二维码图片路径
- * @throws Exception
- */
- public static String generateQRCode(String url) throws IOException, WriterException {
- Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>();
- hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
- hints.put(EncodeHintType.MARGIN, 0);
- BitMatrix bitMatrix = new MultiFormatWriter().encode(url, BarcodeFormat.QR_CODE, 360, 360, hints);
- BufferedImage image = MatrixToImageWriter.toBufferedImage(bitMatrix);
- ByteArrayOutputStream os = new ByteArrayOutputStream();
- ImageIO.write(image, "png", os);
- byte b[] = os.toByteArray();
- String QRCode = new BASE64Encoder().encode(b);
- return QRCode;
- }
- public static void main(String[] args) throws Exception {
- String s = QRCodeUtil.generateQRCode("http://www.baidu.com");
- System.out.println(s);
- }
- }
|