qrcode二维码学习笔记之一

原地址: http://kantaotao.blog.163.com/blog/static/9468786200972433951873/

qrcode二维码学习笔记之一

二维码 2009-08-24 15:39:51 阅读245 评论6 字号:

    最近在看qrcode二维码的资料,整理了一些心得与大家分享一下。

    在网络上找了些资料都是qrcode生成和解码都是分开的包,而且有些需要注册、有些生成的内容有所限制,所以我重新打了一个包,本着我为人人,人人为我的精神,分享出来!


 /**
  * qrcode解码
  * @param filename 文件路径
  * @return 解码内容
  */
 public static String deCode(String filename) {
  BufferedImage sourceImage;
  String decodedString = null;
  try {
   sourceImage = ImageIO.read(new File(filename));
   DeQRCode code = new DeQRCode();
   byte[] decodedBytes = code.decode(new J2EEImage(sourceImage));
   decodedString = new String(decodedBytes);
  } catch (Exception e) {
   e.printStackTrace();
  }
  decodedString = ContentConverter.convert(decodedString);
  System.out.println("解码内容:");
  System.out.println(decodedString);
  return decodedString;
 }


 /**
  * qrcode生成
  * @param value 内容(不限长度,我在测试70个汉字时候都是正常的)
  * @param filepath 存放路径
  * @param pointSize  图片矩形像素大小
  * @return
  */
 public static boolean enCode(String value,String filepath,int pointSize) {
  boolean flag = true;
  try {
   int width ;
   int height = width = value.length() % 8 != 0 ? ((value.length() / 8 -1 )* 10 ) + 15 + (20*pointSize) : ((value.length() / 8 -1 )* 10 ) + 5 + (20*pointSize);
   EnQRCode code = new EnQRCode();
   code.setBounds(new Rectangle(0, 0, width, height));
   code.setCode(value);
   code.setPointSize(pointSize);
   code.setEncoding(code.ENC_BYTE);
   code.setFnc1Mode(EnQRCode.FNC1_MODE_NO);
   code.setErrorCorrectionLevel(EnQRCode.CORRECTION_LEVEL_L);
   ImageEncoder encode = new ImageEncoder(code,filepath);
   flag = encode.drawImage();
   System.out.println("图片生成完毕");
  } catch (Exception ex) {
   ex.printStackTrace();
   flag = false;
  }
  return flag;
 }

 

测试数据

  enCode("姓名:张三\r性别:男\r民族:汉族\r服务编号:10120091019001\r账户余额:10002元","c:\\1.jpg",2);
  enCode("sid=1001 name=ceshi value=100102112","c:\\4.jpg",2);
  enCode("二维图片测试","c:\\5.jpg",2);

 

qrcode二维码学习笔记之一 - 天边的爱 - 有一颗自由的心 却没有放纵的理由

qrcode二维码学习笔记之一 - 天边的爱 - 有一颗自由的心 却没有放纵的理由

qrcode二维码学习笔记之一 - 天边的爱 - 有一颗自由的心 却没有放纵的理由

qrcode二维码学习笔记之一 - 天边的爱 - 有一颗自由的心 却没有放纵的理由

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值