前端:

<image src="{{img_usrl}}" style="width:100%;height:104px;" bindlongtap="saveImg"></image>

js部分:在onLoad中请求

//我的userid 值为:239a3c37-3c2e-4a9d-be74-557638b23b63
this.setData({ img_usrl: getApp().getBaseUrl() + "/icon/" + userid });

java后台:

  1. @RequestMapping("icon/{cateogry}")
  2. public void getQrcodeImg(@PathVariable("cateogry") String cateogry,
  3. HttpServletRequest request,
  4. HttpServletResponse response){
  5.  
  6. try {
  7. //cateogry的值为前端请求的值:239a3c37-3c2e-4a9d-be74-557638b23b63
  8. String url = "固定写死的url路径?id参数="+cateogry;
  9. BufferedImage image = QRCodeUtli.getqrcode(url);
  10. response.setContentType("image/png");
  11.  
  12. OutputStream stream = response.getOutputStream();
  13. ByteArrayOutputStream out = new ByteArrayOutputStream();
  14. ImageIO.write(image, "png", out);
  15. stream.write(out.toByteArray());
  16. stream.flush();
  17. stream.close();
  18. } catch (Exception e) {
  19. e.printStackTrace();
  20. }
  21. }

工具QRCodeUtli类:

  1. package com.early.api.util;
  2. import java.awt.image.BufferedImage;
  3. import java.util.HashMap;
  4. import java.util.Map;
  5. import com.google.zxing.BarcodeFormat;
  6. import com.google.zxing.EncodeHintType;
  7. import com.google.zxing.MultiFormatWriter;
  8. import com.google.zxing.WriterException;
  9. import com.google.zxing.common.BitMatrix;
  10. public class QRCodeUtli {
  11.  
  12. private static final int BLACK = 0xFF000000;
  13. private static final int WHITE = 0xFFFFFFFF;
  14.  
  15. public static BufferedImage getqrcode(String code) {
  16. int width = 400; // 图像宽度
  17. int height = 400; // 图像高度
  18. Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
  19. hints.put(EncodeHintType.MARGIN, 0);//设置白边宽度,取值0~4
  20. hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
  21. try {
  22. BitMatrix bitMatrix = new MultiFormatWriter().encode(code,
  23. BarcodeFormat.QR_CODE, width, height, hints);
  24. BufferedImage image = toBufferedImage(bitMatrix);
  25. return image;
  26. } catch (WriterException e) {
  27. // TODO Auto-generated catch block
  28. e.printStackTrace();
  29. }
  30. return null;
  31. }
  32. public static BufferedImage toBufferedImage(BitMatrix matrix) {
  33. int width = matrix.getWidth();
  34. int height = matrix.getHeight();
  35. BufferedImage image = new BufferedImage(width, height,
  36. BufferedImage.TYPE_INT_RGB);
  37. for (int x = 0; x < width; x++) {
  38. for (int y = 0; y < height; y++) {
  39. image.setRGB(x, y, matrix.get(x, y) ? BLACK : WHITE);
  40. }
  41. }
  42. return image;
  43. }
  44. }

pom文件需要引用的包:

  1. <dependency>
  2. <groupId>com.google.zxing</groupId>
  3. <artifactId>core</artifactId>
  4. <version>3.3.1</version>
  5. </dependency>

<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.3.0</version>
</dependency>

  1.  
  1.  

小程序动态生成二维码,生成image图片的更多相关文章

  1. 微信小程序条码、二维码生成模块

    代码地址如下:http://www.demodashi.com/demo/13994.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...

  2. 转【微信小程序 四】二维码生成/扫描二维码

    原文:https://blog.csdn.net/xbw12138/article/details/75213274 前端 二维码生成 二维码要求:每分钟刷新一次,模拟了个鸡肋,添加了个按分钟显示的时 ...

  3. 微信小程序,获取二维码

    微信小程序,获取二维码 找到一篇很实用的博客,他已经写得很详细了,自己也懒得写,亲测有效 参考网址

  4. 微信小程序扫描普通二维码打开小程序的方法

    很久没有写博客了,之前换了一份工作,很久没有做Android开发了,现在转做前端开发了,记录一下遇到的问题及解决的方法. 最近做微信小程序开发,遇到一个需求,后台管理系统生成的问卷和投票会有一个二维码 ...

  5. jquery生成二维码并实现图片下载

    1.引入jquery的两个js文件 <script src="../scripts/erweima/jquery-1.10.2.min.js"></script& ...

  6. Springboot生成二维码并下载图片png支持打包成zip

    pom.xml <!--二维码--> <dependency> <groupId>com.google.zxing</groupId> <arti ...

  7. js生成二维码以及插入图片

    先根据qrcode官网demo,不同属性值的变化,二维码的变化效果:https://larsjung.de/jquery-qrcode/latest/demo/ 进入demo中,审查元素查看里面引用的 ...

  8. 微信小程序 - 配置普通二维码跳小程序

    普通二维码跳小程序规则: https://developers.weixin.qq.com/miniprogram/introduction/qrcode.html#%E5%8A%9F%E8%83%B ...

  9. php 小程序获取渠道二维码 保存

    function ppost($url,$arr){ $post_data = json_encode($arr); $url=$url; $ch = curl_init(); curl_setopt ...

  10. 微信小程序获取普通二维码

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

随机推荐

  1. EditPlus 3.41 p1115 0728注册码

    EditPlus (2012-7-28 epp341p1115_0728) 注册码: 注册名:Free User 注册码:6AC8D-784D8-DDZ95-B8W3A-45TFA 注册名:Www.S ...

  2. 自定义DelegatingHandler为ASP.NET Web Api添加压缩与解压的功能

    HTTP协议中的压缩 Http协议中使用Accept-Encoding和Content-Encoding头来表示期望Response内容的编码和当前Request的内容编码.而Http内容的压缩其实是 ...

  3. 树的遍历——pat1043

    http://pat.zju.edu.cn/contests/pat-a-practise/1043 给予N个数字组成二叉搜索树,判断这个数列是否由先序遍历得出或是镜像先序遍历得出,若是则输出相应的后 ...

  4. json.loads(s) returns error message like this: ValueError: Invalid control character at: line 1 column 33 (char 33)

    json.loads(s) returns error message like this: ValueError: Invalid control character at: line 1 colu ...

  5. Hibernate学习9—检索策略

    本章,采用Class和Student     ——  1 对 多的关系: Student.java: package com.cy.model; public class Student { priv ...

  6. python在文件中输入整数

    a=[] b=[] for i in range(len(predicted)): b.append((int)(float(predicted[i]))) a.append(int(test_set ...

  7. 常见的sql server 链接问题------持续更新

    问题1:超时时间已到.超时时间已到,但是尚未从池中获取连接.出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小 再查询窗口输入exec sp_who2进行查询链接消耗资源 可能出现的情况是 ...

  8. Sqoop修改sqoop元信息实现job的增量导入

    最简单方式是按主键增量导入:http://blog.csdn.net/ggz631047367/article/details/50185319 以下方法只做存档 需求:redis缓存的数据隔段时间往 ...

  9. PHP中的traits简单理解

    Traits可以理解为一组能被不同的类都能调用到的方法集合,但Traits不是类!不能被实例化.先来例子看下语法: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 ...

  10. gil基本介绍

    一 引子 定义: In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native t ...