zxing生成二维码

<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>core</artifactId>
    <version>3.3.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.zxing/javase -->
<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>javase</artifactId>
    <version>3.3.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.33</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.5</version>
</dependency>

 

 

 

 1 import java.awt.image.BufferedImage;
 2 import java.io.ByteArrayOutputStream;
 3 import java.io.File;
 4 import java.io.FileOutputStream;
 5 import java.io.IOException;
 6 import java.nio.file.FileSystems;
 7 import java.nio.file.Path;
 8 import java.util.HashMap;
 9 import java.util.Map;
10 import java.util.Random;
11 import java.util.UUID;
12 
13 import javax.imageio.ImageIO;
14 
15 import org.apache.commons.io.IOUtils;
16 import org.w3c.dom.UserDataHandler;
17 
18 import com.alibaba.fastjson.JSONObject;
19 
20 import com.google.zxing.BarcodeFormat;
21 import com.google.zxing.EncodeHintType;
22 import com.google.zxing.MultiFormatWriter;
23 import com.google.zxing.WriterException;
24 import com.google.zxing.client.j2se.MatrixToImageWriter;
25 import com.google.zxing.common.BitMatrix;
26 
27 public class Hseid {
28     
29     
30     
31      public void testEncode() throws WriterException, IOException, InterruptedException {  
32             String filePath = "D://";  
33             String fileName =UUID.randomUUID()+".png";  
34 //            JSONObject json = new JSONObject();  
35 //            json.put("zxing", "https://github.com/zxing/zxing/tree/zxing-3.0.0/javase/src/main/java/com/google/zxing");  
36 //            json.put("author", "shihy");  
37 //            String content = json.toJSONString();// 内容  
38             String content = "www.youku.com";
39             int width = 200; // 图像宽度  
40             int height = 200; // 图像高度  
41             String format = "png";// 图像类型  
42             Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();  
43             hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");  
44             
45             
46             BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);// 生成矩阵  
47             
48           //  ByteArrayOutputStream out = new ByteArrayOutputStream();  
49             
50             //轉換到字節數組方式一
51            // BufferedImage bufferedImage = MatrixToImageWriter.toBufferedImage(bitMatrix);
52             //boolean flag = ImageIO.write(bufferedImage, "gif", out);  
53             //byte[] b = out.toByteArray(); 
54             
55             //轉換到字節數組方式二
56            // MatrixToImageWriter.writeToStream(bitMatrix, format, out);
57           //  byte[] byteArray = out.toByteArray();
58             
59             
60             //字節數組轉換到文件
61           //  FileOutputStream fileOutputStream = new FileOutputStream("D://11111.png");
62           //  IOUtils.write(byteArray,fileOutputStream );
63        
64             //方案二先上傳再刪除
65             String usrHome = System.getProperty("user.home");
66             System.out.println(usrHome);
67             Path path = FileSystems.getDefault().getPath(usrHome, fileName);  
68             MatrixToImageWriter.writeToPath(bitMatrix, format, path);// 输出图像  
69             //...這裡完成上傳
70             Thread.sleep(10000);
71             
72             
73             
74             File file = path.toFile();  
75             if(file.exists()&&file.isFile()) {
76                 
77                 //再刪除
78                 file.delete();
79             }
80             
81             
82             System.out.println("输出成功.");  
83         }  
84      
85      
86      public static void main(String[] args) throws WriterException, IOException, InterruptedException {
87         new Hseid().testEncode();
88     }
89 
90 }

 

posted @ 2017-06-22 22:04  woms  阅读(354)  评论(0编辑  收藏  举报