2015年什么最火,二维码,2016年随处可见的是什么,二维码。二维码的历史我们就不探究了,今天分享的是利用Java代码实现二维码的生成和解析。Java代码生成和解析二维码涉及到的东西比较多,还需要引入两个jar包,适合有一定Java功底的人来实现。ok,废话不多说,现在开始分享二维码的生成和解析的经验。

1、下载二维码支持jar包,qrcode.jar和qrcode_swetake.jar,大家可以在网上搜索,也可以点击连接下载我已经使用过的jar包,地址如下:http://download.csdn.net/detail/bakehe/9548373

2、编写生成二维码的Java代码,main方法如下:

3、对应的生成二维码的方法encode(),代码如下:

private static boolean encode(String srcValue, String qrcodePicfilePath){

int MAX_DATA_LENGTH = 200;

byte[] d = srcValue.getBytes();

int dataLength = d.length;

int imageWidth = 113;

int imageHeight = imageWidth;

BufferedImage bi = new BufferedImage(imageWidth, imageHeight,BufferedImage.TYPE_INT_RGB);

Graphics2D g = bi.createGraphics();

g.setBackground(Color.WHITE);

g.clearRect(0, 0, imageWidth, imageHeight);

g.setColor(Color.BLACK);

if (dataLength > 0 && dataLength <= MAX_DATA_LENGTH) {

Qrcode qrcode = new Qrcode();

qrcode.setQrcodeErrorCorrect('M');

qrcode.setQrcodeEncodeMode('B');

qrcode.setQrcodeVersion(5);

boolean[][] b = qrcode.calQrcode(d);

int qrcodeDataLen = b.length;

for (int i = 0; i < qrcodeDataLen; i++) {

for (int j = 0; j < qrcodeDataLen; j++) {

if (b[j][i]) {

g.fillRect(j * 3 + 2, i * 3 + 2, 3, 3);

}

}

}

System.out.println("二维码成功生成!!");

} else {

System.out.println( dataLength +"大于"+ MAX_DATA_LENGTH);

return false;

}

g.dispose();

bi.flush();

File f = new File(qrcodePicfilePath);

String suffix = f.getName().substring(f.getName().indexOf(".")+1, f.getName().length());

System.out.println("二维码输出成功!!");

try {

ImageIO.write(bi, suffix, f);

} catch (IOException ioe) {

System.out.println("二维码生成失败" + ioe.getMessage());

return false;

}

return true;

}


4、解析二维码的main(),代码如下:

5、解析二维码的decode()方法,这里我是利用微信的个人公众账号生成的图片,欢迎大家扫描,代码如下:

private static String decode(String qrcodePicfilePath) {

System.out.println("开始解析二维码!!");

/* 读取二维码图像数据 */

File imageFile = new File(qrcodePicfilePath);

BufferedImage image = null;

try {

image = ImageIO.read(imageFile);

} catch (IOException e) {

System.out.println("读取二维码图片失败: " + e.getMessage());

return null;

}

/* 解二维码 */

QRCodeDecoder decoder = new QRCodeDecoder();

String decodedData = new String(decoder.decode(new J2SEImageGucas(image)));

System.out.println("解析内容如下:"+decodedData);

return decodedData;

}

总结:二维码的生成和解析其实很简单,但是里面用到的图片的生成和图片的读取,这是Java IO流的相关知识,大家也可以直接把它写成一个封装类,直接调用。当然咨询研究一下,非常有助于提升自己的开发能力。

java代码实现二维码图片的生成和解析相关推荐

  1. 怎么用python生成带二维码的照片_怎么制作二维码图片-Python 生成个性二维码

    一.实验介绍1.1 实验内容 本课程通过调用MyQR接口来实现生成个人所需二维码,并可以设置二维码的大小.是否在现有图片的基础上生成.是否生成动态二维码. 1.2 知识点 Python3基础 MyQR ...

  2. ZXing 二维码库之生成与解析二维码

    博主声明: 转载请在开头附加本文链接及作者信息,并标记为转载.本文由博主 威威喵 原创,请多支持与指教. 本文首发于此   博主:威威喵  |  博客主页:https://blog.csdn.net/ ...

  3. 使用Java代码制作二维码(超级简单)

    操作步骤 真的是灰常简单,导入三个jar包,十几行代码就搞定了. 源代码和jar包已经打包放在阿里云盘里面,文末有链接. import com.google.zxing.BarcodeFormat; ...

  4. 使用开源代码实现二维码扫描和生成

    Github下载开源代码https://github.com/搜搜索zxing 把BarCodeTest导到ADT中,然后建立自己的工程TestQRcode,并关联BarCodeTest.在TestQ ...

  5. 六一儿童节艺术海报二维码图片在线生成

    马上就要到六一儿童节了,与六一儿童有关的图片海报该怎么去制作呢?对于不懂的Photoshop的小白来说,要制作生成一张漂亮的六一儿童节相关的艺术海报就很麻烦,如果有在线的艺术海报生成平台那就可以了.我 ...

  6. Java和C#环境中制作二维码图片

    二维码作为一种先进的应用,随着移动互联网和智能终端的普及而快速发展,在媒体.产品质量.仓储物流登各行各业都应用广泛.二维码具有存储量大.保密性高.追踪性高.抗损性强.被援性大.成本便宜等特性,这些特性 ...

  7. Java - 生成二维码图片

    文章目录 生成二维码图片 参考 生成二维码图片 新建 Maven Project,引入依赖: <dependency><groupId>com.google.zxing< ...

  8. windows C++生成二维码图片

    windows C++生成二维码图片 二维码功能现在很常用,前端时间阶段一个项目需求,需要在我们的windows软件上集成扫码登录功能,二维码由windows端生成,实现原理是在windows上用du ...

  9. Android 解析二维码图片

    1.项目需求:知道项目需求,才知道先从哪里入手,见图一.(点击相册,打开图库) 2.代码: 1.打开图库代码: mBtnOpenPicture.setOnClickListener(new View. ...

最新文章

  1. 星云测试-给你的Android应用做个深度体检
  2. 怎么在python下载网站内容-分析某网站,并利用python自动登陆该网站,下载网站内容...
  3. 社区网站功能实现系列(三):社区页面无刷新回发的一种实现方式
  4. matplotlib嵌入到pyqt中
  5. 开源 , KoobooJson一款高性能且轻量的JSON框架
  6. java联接pg库_成为Java流大师–第5部分:将联接的数据库表转换为流
  7. 初识JavaScript,感觉整个人都不好了。。。
  8. 华为荣耀20和x10比较_荣耀X10和华为畅享20plus,到底哪个更值得入手?
  9. STM8单片机读取DHT11温湿度传感器
  10. 关于MVC打印问题,打印指定的内容
  11. 亚马逊条码打印_使用亚马逊的条形码扫描仪轻松从手机上购买任何东西
  12. httpclient基本get用法
  13. JOI2014Final 飞天鼠
  14. Slowloris DoS攻击的原理与简单实现
  15. 2021第一学期学习笔记01
  16. 计算机中什么不可打印,电脑不能打印怎么办
  17. Parameter 'cId' not found. Available parameters are [id, param1]
  18. 【Verilog 设计】Verilog 实现偶数、奇数分频和任意小数分频
  19. reshape2揉数据
  20. ERROR 1044

热门文章

  1. 1对1直播源码,登录注册密码隐藏显示
  2. mysql-58同城30条军规
  3. 研发团队开晨会真的是浪费时间吗?
  4. codecombat 关卡目录
  5. ncurses 方向键响应
  6. 冒险落幕 《魔兽世界》全国巡回展终点站——福州
  7. 学计算机的电脑用i5还是i7好,家用电脑,选酷睿i7还是选i5,这些常识让你不纠结...
  8. Centos 7.5安装safe-rm,防止rm -rf /命令误删除文件
  9. 获取 Android 模拟器的 MAC
  10. php邮箱有效性验证,PHP验证邮箱有效性验证邮箱后缀域名是否真实存在的方法(过滤+DNS验证)...