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();  
            }  
        }  
    }  
     
    
  • 相关阅读:
    Storm中的定时任务
    Storm的acker确认机制
    ORACLE数据库表解锁record is locked by another user
    Java生成某段时间内的随机时间
    Linux中断概述
    Linux内核同步:RCU
    Linux内核同步:自旋锁
    Linux软中断、tasklet和工作队列
    Linux信号机制
    缺页异常处理
  • 原文地址:https://www.cnblogs.com/mjzhang/p/4710577.html
Copyright © 2011-2022 走看看