zoukankan      html  css  js  c++  java
  • 生成二维码

    package com.wangku.was.qe;
    
    import java.awt.image.BufferedImage;  
    import java.io.File;  
    import java.io.IOException;  
    import java.nio.file.FileSystems;  
    import java.nio.file.Path;  
    import java.util.HashMap;  
    import java.util.Map;  
      
    import javax.imageio.ImageIO;  
      
    import org.junit.Test;  
      
    import com.alibaba.fastjson.JSONObject;  
    import com.google.zxing.BarcodeFormat;  
    import com.google.zxing.Binarizer;  
    import com.google.zxing.BinaryBitmap;  
    import com.google.zxing.DecodeHintType;  
    import com.google.zxing.EncodeHintType;  
    import com.google.zxing.LuminanceSource;  
    import com.google.zxing.MultiFormatReader;  
    import com.google.zxing.MultiFormatWriter;  
    import com.google.zxing.NotFoundException;  
    import com.google.zxing.Result;  
    import com.google.zxing.WriterException;  
    import com.google.zxing.client.j2se.BufferedImageLuminanceSource;  
    import com.google.zxing.client.j2se.MatrixToImageWriter;  
    import com.google.zxing.common.BitMatrix;  
    import com.google.zxing.common.HybridBinarizer;
    /**
     * @ClassName: QRCodeTest  
     * @author zhangmeijie 
     * @date 2015-6-19 下午1:43:05
     * @exception
     * @since 1.0
     */
    public class QRCodeTest {
    	/** 
         * 生成图像 
         *  
         * @throws WriterException 
         * @throws IOException 
         */  
        @Test  
        public void testEncode() throws WriterException, IOException {  
            String filePath = "F://";  
            String fileName = "zxing.png";  
            JSONObject json = new JSONObject();  
    //        json.put(  
    //                "zxing",  
    //                "http://kesun-shy.iteye.com/blog/2154169");  
    //        json.put("author", "shihy");  
    //        String content = json.toJSONString();// 内容  
            String content = "http://kesun-shy.iteye.com/blog/2154169";
            int width = 200; // 图像宽度  
            int height = 200; // 图像高度  
            String format = "png";// 图像类型  
            Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();  
            hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");  
            BitMatrix bitMatrix = new MultiFormatWriter().encode(content,  
                    BarcodeFormat.QR_CODE, width, height, hints);// 生成矩阵  
            Path path = FileSystems.getDefault().getPath(filePath, fileName);  
            MatrixToImageWriter.writeToPath(bitMatrix, format, path);// 输出图像  
            System.out.println("输出成功.");  
        }  
      
        /** 
         * 解析图像 
         */  
        @Test  
        public void testDecode() {  
            String filePath = "F://zxing.png";  
            BufferedImage image;  
            try {  
                image = ImageIO.read(new File(filePath));  
                LuminanceSource source = new BufferedImageLuminanceSource(image);  
                Binarizer binarizer = new HybridBinarizer(source);  
                BinaryBitmap binaryBitmap = new BinaryBitmap(binarizer);  
                Map<DecodeHintType, Object> hints = new HashMap<DecodeHintType, Object>();  
                hints.put(DecodeHintType.CHARACTER_SET, "UTF-8");  
                Result result = new MultiFormatReader().decode(binaryBitmap, hints);// 对图像进行解码  
                System.out.println(result.getText());
    //            JSONObject content = JSONObject.parseObject(result.getText());  
    //            System.out.println("图片中内容:  ");  
    //            System.out.println("author: " + content.getString("author"));  
    //            System.out.println("zxing:  " + content.getString("zxing"));  
    //            System.out.println("图片中格式:  ");  
    //            System.out.println("encode: " + result.getBarcodeFormat());  
            } catch (IOException e) {  
                e.printStackTrace();  
            } catch (NotFoundException e) {  
                e.printStackTrace();  
            }  
        }  
    }  
     
    
  • 相关阅读:
    tuple 元组及字典dict
    day 49 css属性补充浮动 属性定位 抽屉作业
    day48 选择器(基本、层级 、属性) css属性
    day47 列表 表单 css初识
    day 46 http和html
    day 45索引
    day 44 练习题讲解 多表查询
    day 40 多表查询 子查询
    day39 表之间的关联关系、 补充 表操作总结 where 、group by、
    day38 数据类型 约束条件
  • 原文地址:https://www.cnblogs.com/mjzhang/p/4710577.html
Copyright © 2011-2022 走看看