小程序动态生成二维码,生成image图片

前端:

<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后台:

@RequestMapping("icon/{cateogry}")
public void getQrcodeImg(@PathVariable("cateogry") String cateogry,
        HttpServletRequest request,
        HttpServletResponse response){

    try {
        //cateogry的值为前端请求的值:239a3c37-3c2e-4a9d-be74-557638b23b63
        String url = "固定写死的url路径?id参数="+cateogry;
        BufferedImage image = QRCodeUtli.getqrcode(url);
        response.setContentType("image/png");

        OutputStream stream = response.getOutputStream();
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        ImageIO.write(image, "png",     out);
        stream.write(out.toByteArray());
        stream.flush();
        stream.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

工具QRCodeUtli类:

package com.early.api.util;
import java.awt.image.BufferedImage;
import java.util.HashMap;
import java.util.Map;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
public class QRCodeUtli {

    private static final int BLACK = 0xFF000000;
    private static final int WHITE = 0xFFFFFFFF;

    public static BufferedImage getqrcode(String code) {
        int width = 400; // 图像宽度
        int height = 400; // 图像高度
        Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
        hints.put(EncodeHintType.MARGIN, 0);//设置白边宽度,取值0~4
        hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
        try {
            BitMatrix bitMatrix = new MultiFormatWriter().encode(code,
                    BarcodeFormat.QR_CODE, width, height, hints);
            BufferedImage image = toBufferedImage(bitMatrix);
            return image;
        } catch (WriterException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }
    public static BufferedImage toBufferedImage(BitMatrix matrix) {
        int width = matrix.getWidth();
        int height = matrix.getHeight();
        BufferedImage image = new BufferedImage(width, height,
                BufferedImage.TYPE_INT_RGB);
        for (int x = 0; x < width; x++) {
            for (int y = 0; y < height; y++) {
                image.setRGB(x, y, matrix.get(x, y) ? BLACK : WHITE);
            }
        }
        return image;
    }
}

pom文件需要引用的包:

<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>core</artifactId>
    <version>3.3.1</version>
</dependency>
 

原文地址:https://www.cnblogs.com/1246447850qqcom/p/8327614.html

时间: 2024-08-24 22:52:20

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

二维码生成,二维码中嵌套图片,文字生成图片

package com.fh.util; import java.awt.BasicStroke;import java.awt.Color;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream; import javax.

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

1.引入jquery的两个js文件 <script src="../scripts/erweima/jquery-1.10.2.min.js"></script> <script type="text/javascript" src="../scripts/erweima/jquery.qrcode.min.js"></script> 2.准备一个展示二维码的div <div id="

生成二维码并以图片格式下载-qrcodejs2

最近在做项目,碰到票据完成后的生成二维码以及提供下载功能,这里谈谈个人实战经验: 先上代码: 引入: html: js: 说明: 网上文章里提到的插件很多,但是好像并不是都有用(有点坑),实践之后发现“qrcodejs2”这个是有效的: 生成二维码: 调用createQr()方法,获取后台返回的qrUrl(这个大家都懂的老),并将其作为参数传入调用的qrCode(qrUrl)之中: qrCode方法中new qrCode会生成一个qrCode实例,这里的传参是关键,第一个参数是要存放的dom的i

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

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Net; using System.IO; using System.Web.Script.Serialization; using LitJson; using System.Drawing; using System.Drawing.Im

链接生成二维码生成

qrcode.js 1 /*from tccdn minify at 2014-6-4 14:59:43,file:/cn/c/c/qrcode.js*/ 2 /** 3 * @fileoverview 4 * - Using the 'QRCode for Javascript library' 5 * - Fixed dataset of 'QRCode for Javascript library' for support full-spec. 6 * - this library has

小程序通过扫二维码带参数编辑

onLoad: function (option) { var self = this; if(option.dealerid){ //首页进入带的参数 } } 原文地址:https://www.cnblogs.com/liubingyjui/p/12377318.html

二维码生成和扫描

下载类库https://yunpan.cn/cBAZaMg5t2BXH  访问密码 5a55 1.项目外层的settings.gradle 中添加 include ':App',':libzxing' 2.libzxing的build.gradle中修改成和自己app相同的版本 compileSdkVersion 23buildToolsVersion "23.0.3" defaultConfig { minSdkVersion 15 targetSdkVersion 23 3.在 b

C# ZXing.Net生成二维码、识别二维码、生成带Logo的二维码(一)

一.ZXing.Net 源代码地址:http://zxingnet.codeplex.com/ 也可以使用Nuget包管理,添加如图: 说明:ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码.目标是能够对QR编码.Data Matrix.UPC的1D条形码进行解码. 其提供了多种平台下的客户端包括:J2ME.J2SE和Android.现在也有了对应的.Net版本 二.生成二维码 将字符编码时可以指定字符格式:默认为ISO-8859-1英文字符集,但一般移动设备常用UTF-8字符

iOS中的原生框架生成二维码

一.二维码的生成 从iOS7开始集成了二维码的生成和读取功能 此前被广泛使用的ZBarSDK 目前不支持64位处理器,除此之外还有ZXingSDK也可以生成二维码 生成二维码的步骤 导入CoreImage框架 通过滤镜CIFilter生成二维码 二维码的内容(传统的条形码只能放数字) 纯文本 名片 URL(可直接跳转网页) 二维码生成的具体代码 1 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)eve

C#MVC生成二维码

首先大家看我的上一个文章写得是WinFrom 实现条形码生成读取 这次我来呈现出MVC B/S 页面实现 一维码,二维码 1.3 第三方类库:ZXing.Net 1.3.1 说明 ZXing 是一个可生成和读取 1D/2D(1维/2维) 条形码的开源类库.原先是Java版本,后由第三方衍生了支持QT.C++..Net等版本. .Net版本支持的平台:.Net 2.0, 3.5 and 4.0.Silverlight 4 and 5.Windows Phone 7.0, 7.1 and 8.0.W