网页生成二维码的例子

来源:互联网 发布:中国人工智能股票龙头 编辑:程序博客网 时间:2024/06/06 09:30
后台:

请求:
@RequestMapping("/createQRcode")public void createQRcode(String pid, HttpServletResponse response) throws IOException {QRcodeUtil.create(pid, response, wapUrl);}

处理逻辑:
import java.io.File;import java.io.OutputStream;import java.util.Hashtable;import java.util.Map;import javax.servlet.http.HttpServletResponse;import com.google.zxing.BarcodeFormat;import com.google.zxing.EncodeHintType;import com.google.zxing.MultiFormatWriter;import com.google.zxing.client.j2se.MatrixToImageWriter;import com.google.zxing.common.BitMatrix;import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;public class QRcodeUtil {  private static final String PRO_DETAIL_URL = "/#productDetail/"; private static final int PIC_WIDTH = 100; private static final int PIC_HEIGHT = 100;  public static void create(String pid, HttpServletResponse resp, String wapUrl) {   String purl = wapUrl + PRO_DETAIL_URL + pid;  encode(purl, PIC_WIDTH, PIC_HEIGHT, resp); }  /**     * 生成二维码     * @param url     * @param width     * @param height     * @param imgPath     */    public static void encode(String url, int width, int height, HttpServletResponse resp) {        Map<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>();        // 指定纠错等级        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);        // 指定编码格式        hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");        try {            BitMatrix bitMatrix = new MultiFormatWriter().encode(url,                    BarcodeFormat.QR_CODE, width, height, hints);            resp.setContentType("image/png");            OutputStream out;            out = resp.getOutputStream();            MatrixToImageWriter.writeToStream(bitMatrix, "png", out);            out.close();        } catch (Exception e) {            e.printStackTrace();        }    } /**     * 编码     * @param contents     * @param width     * @param height     * @param imgPath     */    public static void encode(String contents, int width, int height, String imgPath) {        Map<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>();        // 指定纠错等级        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);        // 指定编码格式        hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");        try {            BitMatrix bitMatrix = new MultiFormatWriter().encode(contents,                    BarcodeFormat.QR_CODE, width, height, hints);             MatrixToImageWriter.writeToFile(bitMatrix, "png", new File(imgPath));        } catch (Exception e) {            e.printStackTrace();        }    }     /**     * @param args     */    public static void main(String[] args) {        String imgPath = "d:/zxing.png";        String contents = "http://m.wei.yooyo.com/#download";        int width = 300, height = 300;        QRcodeUtil.encode(contents, width, height, imgPath);         System.out.println("Michael ,you have finished zxing encode.");    }}


前台:
<img src="${portalUrl}/goods/createQRcode.do?pid=${info.id}" width="100" height="100" alt="#" />


pom.xml:
 <dependency>        <groupId>com.google.zxing</groupId>        <artifactId>core</artifactId>        <version>3.0.1</version>        </dependency>               <dependency>         <groupId>com.google.zxing</groupId>         <artifactId>javase</artifactId>         <version>3.0.1</version>        </dependency>


0 0
原创粉丝点击