QrcodeUtil.java 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package com.yihu.wlyy.util;
  2. import com.google.zxing.BarcodeFormat;
  3. import com.google.zxing.EncodeHintType;
  4. import com.google.zxing.MultiFormatWriter;
  5. import com.google.zxing.WriterException;
  6. import com.google.zxing.client.j2se.MatrixToImageWriter;
  7. import com.google.zxing.common.BitMatrix;
  8. import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
  9. import org.apache.commons.lang3.StringUtils;
  10. import org.json.JSONObject;
  11. import java.awt.image.BufferedImage;
  12. import java.io.*;
  13. import java.net.HttpURLConnection;
  14. import java.net.URL;
  15. import java.util.HashMap;
  16. import java.util.Map;
  17. import java.util.concurrent.ExecutionException;
  18. /**
  19. * Created by lyr on 2016/08/10.
  20. */
  21. public class QrcodeUtil {
  22. /**
  23. * 二维码图片生成
  24. *
  25. * @param content 二维码内容
  26. * @param imgType 图片类型
  27. * @param size 图片尺寸
  28. * @return
  29. */
  30. public static File QrcodeEncode(String content, String fileName, String path, String imgType, int size) throws Exception {
  31. File pathFile = new File(path);
  32. File outputFile = new File(path + File.separator + fileName + ".png");
  33. if (!pathFile.exists()) {
  34. pathFile.mkdir();
  35. }
  36. if (outputFile.exists()) {
  37. outputFile.delete();
  38. }
  39. outputFile.createNewFile();
  40. Map<EncodeHintType, String> hints = new HashMap<EncodeHintType, String>();
  41. // 内容所使用字符集编码
  42. hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
  43. BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, size, size, hints);
  44. // 生成二维码
  45. MatrixToImageWriter.writeToFile(bitMatrix, imgType, outputFile);
  46. return outputFile;
  47. }
  48. /**
  49. * 创建二维码
  50. * @param content
  51. * @return
  52. */
  53. public static InputStream createQrcode(String content,int size,String imgType) {
  54. byte[] imagesStream=null;
  55. ByteArrayOutputStream os = null;
  56. try {
  57. HashMap<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
  58. hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
  59. hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
  60. hints.put(EncodeHintType.MARGIN, 0);
  61. BitMatrix bitMatrix = new MultiFormatWriter().encode(content,
  62. BarcodeFormat.QR_CODE, size, size, hints);
  63. os = new ByteArrayOutputStream();
  64. MatrixToImageWriter.writeToStream(bitMatrix, imgType, os);
  65. return new ByteArrayInputStream(os.toByteArray());
  66. } catch (Exception e) {
  67. e.printStackTrace();
  68. }finally{
  69. if(os!=null){
  70. try {
  71. os.close();
  72. } catch (IOException e) {
  73. e.printStackTrace();
  74. }
  75. }
  76. }
  77. return null;
  78. }
  79. }