java QRCode生成示例 (二维码生成)

来源:互联网 发布:oracle数据库死锁解决 编辑:程序博客网 时间:2024/04/30 17:04

  1. java QRCode生成示例  
  2.   
  3. 我们可以使用QRGen这个比较不错的包来生成QR code。  
  4.   
  5. maven依赖:  
  6.   
  7.     <dependencies>  
  8.         <dependency>  
  9.             <groupId>net.glxn</groupId>  
  10.             <artifactId>qrgen</artifactId>  
  11.             <version>1.2</version>  
  12.         </dependency>  
  13.     </dependencies>  
  14.       
  15. 示例代码:  
  16.   
  17.   
  18.     import java.io.ByteArrayOutputStream;  
  19.     import java.io.File;  
  20.     import java.io.FileNotFoundException;  
  21.     import java.io.FileOutputStream;  
  22.     import java.io.IOException;  
  23.   
  24.     import net.glxn.qrgen.QRCode;  
  25.     import net.glxn.qrgen.image.ImageType;  
  26.   
  27.     public class QRCodeUtil {  
  28.   
  29.         public static void main(String[] args) {  
  30.             ByteArrayOutputStream out = QRCode.from("Hello World")  
  31.                     .to(ImageType.PNG).stream();  
  32.   
  33.             try {  
  34.                 FileOutputStream fout = new FileOutputStream(new File(  
  35.                         "E:\\logs\\QR_Code.JPG"));  
  36.   
  37.                 fout.write(out.toByteArray());  
  38.   
  39.                 fout.flush();  
  40.                 fout.close();  
  41.   
  42.             } catch (FileNotFoundException e) {  
  43.                 // Do Logging  
  44.             } catch (IOException e) {  
  45.                 // Do Logging  
  46.             }  
  47.               
  48.             // get QR file from text using defaults  
  49.              File file = QRCode.from("Hello World").file();  
  50.              // get QR stream from text using defaults  
  51.              ByteArrayOutputStream stream = QRCode.from("Hello World").stream();  
  52.                  
  53.              // override the image type to be JPG  
  54.              QRCode.from("Hello World").to(ImageType.JPG).file();  
  55.              QRCode.from("Hello World").to(ImageType.JPG).stream();  
  56.                  
  57.              // override image size to be 250x250  
  58.              QRCode.from("Hello World").withSize(250250).file();  
  59.              QRCode.from("Hello World").withSize(250250).stream();  
  60.                  
  61.              // override size and image type  
  62.              QRCode.from("Hello World").to(ImageType.GIF).withSize(250250).file();  
  63.              QRCode.from("Hello World").to(ImageType.GIF).withSize(250250).stream();  
  64.                
  65.     //       Website Link (URLs) QR Code in Java  
  66.              ByteArrayOutputStream out1 = QRCode.from("http://viralpatel.net")  
  67.                         .to(ImageType.PNG).stream();  
  68.         }  
  69.   
  70.     }  
  71.       
  72. j2ee中的使用:  
  73.   
  74.  index.jsp  
  75.    
  76.     <html>  
  77.     <head>  
  78.     <title>QR Code in Java Servlet - viralpatel.net</title>  
  79.     </head>  
  80.     <body>  
  81.            
  82.         <form action="qrservlet" method="get">  
  83.             <p>Enter Text to create QR Code</p>  
  84.             <input type="text" name="qrtext" />  
  85.             <input type="submit" value="Generate QR Code" />  
  86.         </form>  
  87.     </body>  
  88.     </html>  
  89.       
  90. QRCodeServlet.java  
  91.   
  92.     import java.io.ByteArrayOutputStream;  
  93.     import java.io.File;  
  94.     import java.io.FileNotFoundException;  
  95.     import java.io.FileOutputStream;  
  96.     import java.io.IOException;  
  97.     import java.io.OutputStream;  
  98.        
  99.     import javax.servlet.ServletException;  
  100.     import javax.servlet.http.HttpServlet;  
  101.     import javax.servlet.http.HttpServletRequest;  
  102.     import javax.servlet.http.HttpServletResponse;  
  103.        
  104.     import net.glxn.qrgen.QRCode;  
  105.     import net.glxn.qrgen.image.ImageType;  
  106.        
  107.     public class QRCodeServlet extends HttpServlet {  
  108.         @Override  
  109.         protected void doGet(HttpServletRequest request,  
  110.                 HttpServletResponse response) throws ServletException, IOException {  
  111.        
  112.             String qrtext = request.getParameter("qrtext");  
  113.        
  114.             ByteArrayOutputStream out = QRCode.from(qrtext).to(  
  115.                     ImageType.PNG).stream();  
  116.                
  117.             response.setContentType("image/png");  
  118.             response.setContentLength(out.size());  
  119.                
  120.             OutputStream outStream = response.getOutputStream();  
  121.        
  122.             outStream.write(out.toByteArray());  
  123.        
  124.             outStream.flush();  
  125.             outStream.close();  
  126.         }  
  127.     }  
  128.       
  129. web.xml  
  130.   
  131.     <?xml version="1.0" encoding="UTF-8"?>  
  132.     <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  133.             xmlns="http://java.sun.com/xml/ns/javaee"  
  134.             xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
  135.             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
  136.             id="WebApp_ID" version="2.5">  
  137.                
  138.       <display-name>QR_Code_Servlet</display-name>  
  139.       <welcome-file-list>  
  140.         <welcome-file>index.jsp</welcome-file>  
  141.       </welcome-file-list>  
  142.        
  143.         <servlet>  
  144.             <servlet-name>QRCodeServlet</servlet-name>  
  145.             <servlet-class>net.viralpatel.qrcodes.QRCodeServlet</servlet-class>  
  146.         </servlet>  
  147.         <servlet-mapping>  
  148.             <servlet-name>QRCodeServlet</servlet-name>  
  149.             <url-pattern>/qrservlet</url-pattern>  
  150.         </servlet-mapping>  
  151.            
  152.     </web-app>  
1 0