个人博客传送门


  今天又遇到了新的问题,就是后台需要生成一个二维码,以前从来没有做过这个二维码,通过上午的努力,总算是完成了,希望有兴趣的可以一起交流学习。我用的是google.zxing的这个插件来完成生成二维码的,还是很方便的。

一.首先需要引入google.zxing的jar包。
我是建的maven工程,因此直接给你上maven的配置,别的可以在网上下载相应的jar包也行。pom.xml配置如下:

<!-- 二维码 --><!-- https://mvnrepository.com/artifact/com.google.zxing/core --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>2.1</version></dependency><!-- https://mvnrepository.com/artifact/com.google.zxing/javase --><dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>2.1</version></dependency>

二.接下来直接上代码:
就是先将需要放在二维码中的数据传进来,生成二维码,然后在将二维码写进一个img中,最后是将这个图片放在了服务器上,然后这个二维码就完成了生成和上传,这次由于项目比较着急,没有时间去研究如何加水印,有兴趣的可以去研究下。
具体的代码如下:

private static final int BLACK = 0xff000000;private static final int WHITE = 0xFFFFFFFF;/*** @param args*/public static String tomakeMode(String strJson,String path) {QsMode test = new QsMode();String filePostfix="png";String UUID = StringUtil.getUUID();File file = new File(path  +UUID + "."+filePostfix);test.encode(strJson, file,filePostfix, BarcodeFormat.QR_CODE, 5000, 5000, null);return UUID+".png";}/***  生成QRCode二维码<br> *  在编码时需要将com.google.zxing.qrcode.encoder.Encoder.java中的<br>*  static final String DEFAULT_BYTE_MODE_ENCODING = "ISO8859-1";<br>*  修改为UTF-8,否则中文编译后解析不了<br>* @param contents 二维码的内容* @param file 二维码保存的路径,如:C://test_QR_CODE.png* @param filePostfix 生成二维码图片的格式:png,jpeg,gif等格式* @param format qrcode码的生成格式* @param width 图片宽度* @param height 图片高度* @param hints*/public  void encode(String contents, File file,String filePostfix, BarcodeFormat format, int width, int height, Map<EncodeHintType, ?> hints) {try {contents = new String(contents.getBytes("UTF-8"), "ISO-8859-1"); BitMatrix bitMatrix = new MultiFormatWriter().encode(contents, format, width, height);writeToFile(bitMatrix, filePostfix, file);} catch (Exception e) {e.printStackTrace();}}/*** 生成二维码图片<br>* * @param matrix* @param format*            图片格式* @param file*            生成二维码图片位置* @throws IOException*/public  static void writeToFile(BitMatrix matrix, String format, File file) throws IOException {BufferedImage image = toBufferedImage(matrix);ImageIO.write(image, format, file);}/*** 生成二维码内容<br>* * @param matrix* @return*/public static BufferedImage toBufferedImage(BitMatrix matrix) {int width = matrix.getWidth();int height = matrix.getHeight();BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);for (int x = 0; x < width; x++) {for (int y = 0; y < height; y++) {image.setRGB(x, y, matrix.get(x, y) == true ? BLACK : WHITE);}}return image;}
strJson是我向二维码中存入的数据,path是我的存放这个生成的二维码的路径,我是直接生成之后上传到服务器上,然后把下载的路径返回,以后需要的话可以直接下载。
UUID是我的一个工具类,用来生成随机的编码的,主要是为了防止生成的二维码的名称重复,为了上传使用。
上面的代码也是比较详细的,如果有不懂的地方可以一起讨论,相互学习,这个是原创,转载的话请注明来源。

java后台实现生成二维码并且上传的详细介绍相关推荐

  1. JAVA实现生成原生二维码并上传至阿里云

    JAVA生成二维码并上传至阿里云 pom依赖 <dependency><groupId>com.google.zxing</groupId><artifact ...

  2. java实现后台直接生成二维码图片并直接上传到七牛云上面

    java实现后台直接生成二维码图片并直接上传到七牛云上面 需求:后台是直接根据唯一核销码生成图片,然后的话直接上传到七牛云,数据库只是保存地址,一开始也想错了,想成了创建临时文件存储生成的图片再上传到 ...

  3. java根据内容生成二维码

    java根据内容生成二维码 一.首先导入jar包:google.zxing.jar jar包可以从maven网站下载:meven仓库 这里可以找到你想要的绝大多数jar包,可以是依赖,也可以是jar包 ...

  4. java利用zxing生成二维码

    什么是ZXing? ZXing是一个开源的,用Java实现的多种格式的1D/2D条码图像处理库. 利用ZXing这个工具库来生成二维码,具体操作如下: 引入相关资源包 <dependency&g ...

  5. java将链接生成二维码工具类

    一.添加依赖 <!-- 生成二维码--><dependency><groupId>com.google.zxing</groupId><artif ...

  6. java使用zxing生成二维码,可带logo和底部文字

    java使用zxing生成二维码,可带logo和底部文字 springboot中整合zxing生成二维码 一.导入依赖 <properties><zxing.version>3 ...

  7. java学习-zxing生成二维码矩阵的简单例子

    这个例子需要使用google的开源项目zxing的核心jar包 core-3.2.0.jar 可以百度搜索下载jar文件,也可使用maven添加依赖 <dependency><gro ...

  8. java如何批量生成二维码,并返回成压缩包形式?

    最近有点忙,现在稍微闲一些,就想写写最近遇到的一些业务. 业务:后台根据前端传入的需生成的数量,生成二维码图片并统一打包成压缩包返回. 效果图: 首先根据一定规则生成二维码字符串,然后返回成list( ...

  9. Java利用Zxing生成二维码及解析二维码内容

    前言 Java 操作二维码的开源项目很多,如 SwetakeQRCode.BarCode4j.Zxing 等等 本篇文章是介绍利用Zxing来生成二维码图片在web网页上展示,同时解析二维码图片. Z ...

最新文章

  1. C++托管代码生成DLL
  2. 网站推广——seo优化对企业网站推广能力的提升有着不小的帮助
  3. arm linux下编译库System.Net.Primitives.dll和System.Xml.XmlSerializer.dll
  4. 奇异值分解(Singular Value Decomposition,SVD)
  5. QT示例:基于TCP点对点Socket通讯
  6. Java基础学习总结(154)——Synchronized与Volatile、Synchronized与ReentrantLock概念及区别
  7. 沟通艺术-善于揣摩对方心思,才能把话说到心坎上
  8. harbor1.4.0高可用部署
  9. 请领导过目文件怎么说_职场话题:当领导说“你定吧”,你会怎么做?
  10. VirtualDub在处理WMV文件时显示“MISSING CODEC”怎么办
  11. 【Unity3D】资源文件 ③ ( Unity 资源包简介 | 导出 Unity 资源包 | 导出资源包的包含依赖选项 | 导入 Unity 资源包 | Unity 资源商店 )
  12. Arduino时钟显示
  13. access随系统启动的宏_Access 中启动带宏的excel
  14. 非线性规划问题求解(举例)
  15. matlab平摆线曲率参数方程,参数方程中曲线欣赏—平摆线解读.ppt
  16. collections.deque的队列方法,[]内的语句规范,del,字典(dict)
  17. ExoPlayer详解(官方文档-入门)
  18. 2017年什么命_2017年在五行中属什么,2017年出生是什么命 五行
  19. nmap扫描出错sendmsg: No route to host
  20. 点云配准论文阅读笔记--Comparing ICP variants on real-world data sets

热门文章

  1. numpy_arrange函数
  2. DOM解析XML应用之铃声多多改歌曲名称
  3. 论文笔记-DRFNet:Looking for the Detail and Context Devils: High-Resolution Salient Object Detection
  4. MapReduce--12--学生成绩(增强版)--需求1
  5. 金蝶云星空之WebAPI开发(Android)----登录
  6. 河北北方学院计算机毕业要求四级吗,河北北方学院2020年6月英语四级报名条件有哪些?...
  7. JavaAwtSwing布局 GridBagLayout和GridBagConstraints测试-220610
  8. 鸿蒙和iqoo系统谁强,华为p50pro和iqoo7参数对比-华为p50pro和iqoo7哪个更值得入手
  9. NotificationManager滑动不退出_切记,iPhone 不要滑动关后台 !
  10. VM虚拟机Linux在CentOS设置中文输入法