微信小程序显示二维码

这篇具有很好参考价值的文章主要介绍了微信小程序显示二维码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在请求接口的success下面写入这段代码。

在他的上一个请求数据的打他下面创建一个空的用于存放数据的东西比如obj:" "用于存放数据。

将它放到一个一个点击事件中,通过触发点击事件执行代码

如果窒息看代码的话const tupian 这个变量让他等有一张网络图片。

这段代码是使用微信小程序的 canvas 绘图功能,在一个 canvas 元素中绘制图片。

1.首先通过 wx.createSelectorQuery() 创建一个查询对象 query,然后使用 query.select('#myCanvas') 选择页面中的 idmyCanvas 的 canvas 元素。

const query = wx.createSelectorQuery()

2.调用 fields 方法指定需要查询的属性,这里设置了 nodesize,即获取节点信息和大小信息。

 .fields({
            node: true,
            size: true
          })

3.调用 exec 方法执行查询操作,res 是一个数组,包含了查询结果,对应查询属性的设置。

 .exec((res) => {}

4.从 res 中取出第一个结果 res[0],获取 canvas 元素和宽高信息,然后进行一系列的绘图操作。

const canvas = res[0].node

5.定义图片地址 tupian,使用 canvas.getContext('2d') 获取 2D 绘图上下文 ctx

 const tupian = 'https://pic.imgdb.cn/item/649bdde41ddac507cca5dfab.jpg';

6.通过 wx.getSystemInfoSync().pixelRatio 获取屏幕的像素比例,并根据比例设置 canvas 的宽高。

           const dpr = wx.getSystemInfoSync().pixelRatio
            canvas.width = res[0].width * dpr // 获取宽
            canvas.height = res[0].height * dpr // 获取高
           

7.使用 ctx.scale(dpr, dpr) 缩放绘图上下文,以适应不同屏幕的分辨率。

      ctx.scale(dpr, dpr)

8.使用 canvas.createImage() 创建一个图像实例 image,并设置 image.src 为指定的图片地址 tupian

 let image = canvas.createImage();//创建iamge实例

9.在 image.onload 回调函数中,等待图片加载完成后,调用 ctx.drawImage(image, 0, 0, 270, 370) 在 canvas 上绘制背景图。

           image.onload = function () {
              ctx.drawImage(image, 0, 0, 270, 370); // 背景图}

10.使用 wx.getFileSystemManager() 获取文件系统管理器,生成一个唯一的文件名 codeimg

     const fs = wx.getFileSystemManager();
            var codeimg = wx.env.USER_DATA_PATH + '/' + times + '.png';

11.使用 fs.writeFile 方法将接口返回的 base64 图片数据写入文件系统中,文件名为 codeimg。注意,要去掉 base64 数据前面的 data:image/png;base64,

            fs.writeFile({

              filePath: codeimg,
              data: that.data.base.slice(22), // code就是接口返回的base64数据(分割掉前面的data:image/png;base64,)
              encoding: 'base64',})

12.使用 wx.createSelectorQuery() 再次选择 #myCanvas,获取 canvas 元素的上下文 ctx

                wx.createSelectorQuery().select('#myCanvas').fields({
                    node: true,
                    size: true
                  })

13.创建一个 Image 对象 bg,设置 bg.src 为之前保存的图片路径 codeimg

                    const bg = canvas.createImage();
                    bg.src = codeimg;
   

14.在 bg.onload 回调函数中,等待图片加载完成后,调用 ctx.drawImage(bg, 65, 170, 140, 140) 绘制图片在 canvas 上。

                 bg.onload = function () {
                      ctx.drawImage(bg, 65, 170, 140, 140);
                    }

总之,这段代码实现了在 canvas 元素上绘制背景图和从 base64 图片数据中生成并绘制另一张图片。这种绘图操作常见于小程序中的图像处理和展示需求。

以下是全部代码文章来源地址https://www.toymoban.com/news/detail-674931.html

        // 开始
        const query = wx.createSelectorQuery()
        query.select('#myCanvas')
          .fields({
            node: true,
            size: true
          })
          .exec((res) => {
            const tupian = 'https://pic.imgdb.cn/item/649bdde41ddac507cca5dfab.jpg';
            const canvas = res[0].node
            const ctx = canvas.getContext('2d')
            const dpr = wx.getSystemInfoSync().pixelRatio
            canvas.width = res[0].width * dpr // 获取宽
            canvas.height = res[0].height * dpr // 获取高
            ctx.scale(dpr, dpr)

            // 到这里就可以直接绘制   //可注释
             let image = canvas.createImage();//创建iamge实例
            image.src = tupian;  // 引入网络图片
            image.onload = function () {
              ctx.drawImage(image, 0, 0, 270, 370); // 背景图
              // 可注释结束
            // 绘制base64图片
            //声明文件系统
            const fs = wx.getFileSystemManager();
            var times = new Date().getTime();
            var codeimg = wx.env.USER_DATA_PATH + '/' + times + '.png';
            console.log(that.data.base, 'dfghjklkjhgfdghjk')
            console.log(tupian);
            //将base64图片写入
            fs.writeFile({

              filePath: codeimg,
              data: that.data.base.slice(22), // code就是接口返回的base64数据(分割掉前面的data:image/png;base64,)
              encoding: 'base64',
              success: () => {
                console.log(codeimg);
                wx.createSelectorQuery().select('#myCanvas').fields({
                    node: true,
                    size: true
                  })
                  .exec((res) => {
                    let ctx = res[0].node.getContext('2d'); //getContext返回Canvas 的绘图上下文
                    let canvas = res[0].node;
                    const bg = canvas.createImage();
                    bg.src = codeimg;
                    bg.onload = function () {
                      ctx.drawImage(bg, 65, 170, 140, 140);
                    }
                  })
              }
            })
            }
          });

到了这里,关于微信小程序显示二维码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何生成微信小程序二维码,小程序内页二维码

    你自己得有个微信公众号,只需要知道小程序的名字就可以了 生成小程序二维码 第一步编辑素材 第二步搜索小程序名字,然后回车,下一步 第三步选小程序码 小程序内页二维码 第一步编辑素材 第二步搜索小程序名字,然后回车,下一步 第三步点击‘获取更多路径’ 第四

    2024年02月15日
    浏览(50)
  • 【微信小程序二维码配置】微信公众平台配置二维码,小程序测试二维码,小程序动态二维码,然后扫码打开对应页面进行操作

    微信公众平台地址:微信公众平台 选择 开发管理 – 开发设置 – 扫普通链接二维码打开小程序 配置项 二维码规则: URL 为内含下载校验文件的服务器 URL , 可以加二级,比如我的 https://*** /preview , 二级随便写什么都可以 测试链接(选填): 匹配二维码规则地址,后加 *** 参数, 因

    2024年01月19日
    浏览(70)
  • 微信小程序——二维码推广海报

    😊博主:小猫娃来啦 😊本文核心: 本地图片和接口返回二维码制作一体化canvas海报 在微信小程序中,我们使用 canvas 标签来创建一个画布 wxml 文件: 确立基本样式 wxss文件: 我们先使用 wx.createCanvasContext 创建一个 canvas 的上下文对象,然后通过调用 drawImage 方法分别绘制背

    2024年02月16日
    浏览(62)
  • 微信小程序 — 生成二维码功能

    微信小程序实现生成二维码功能。需要用到canvas组件,设置 type为2d.  需要使用js包 weapp-qrcode-canvas-2d https://github.com/DoctorWei/weapp-qrcode-canvas-2d weapp-qrcode-canvas-2d 是使用新版canvas-2d接口在微信小程序中生成二维码(外部二维码)的js包。canvas 2d 接口支持同层渲染且性能更佳,可大

    2024年02月09日
    浏览(60)
  • 微信小程序之生成二维码

     var context = wx.createCanvasContext(\\\'mycanvas\\\'); // 获取画布 CanvasContext.fillText string text 在画布上输出的文本 number x 绘制文本的左上角 x 坐标位置 number y 绘制文本的左上角 y 坐标位置 number maxWidth 需要绘制的最大宽度,可选 CanvasContext.drawImage string imageResource 所要绘制的图片资源(网络

    2024年02月10日
    浏览(50)
  • 微信小程序实现预约生成二维码

    业务需求 :点击预约按钮即可生成二维码凭码入校参观~ 如下是博主自己写的wxml: 以及wxss: 去Gitee下载工具包: 二维码工具包 http://​ https://gitee.com/WeiDoctor/weapp-qrcode-canvas-2d ​ 下载zip:     将dist文件夹中的js文件全部复制到utils目录下: 如下代码必须完整的导入再页面

    2024年04月15日
    浏览(55)
  • 微信小程序生成二维码的 方式

    一:生成普通的二维码 https://open.weixin.qq.com/sns/getexpappinfo?appid=xxxpath=xxx?a=123 appid:小程序的appid path: 小程序的路径 a:小程序需要携带的参数,不传可以不写 二:在微信开发文档内生成 步骤1.登录微信公众平台 2.找到工具菜单 3.选择生成小程序码 具体里面的有生成规则,不懂得

    2024年02月12日
    浏览(54)
  • 微信小程序中长按识别二维码

    属性 类型 默认值 必填 说明 show-menu-by-longpress boolean false 否 长按图片显示发送给朋友、收藏、保存图片、搜一搜、打开名片/前往群聊/打开小程序(若图片中包含对应二维码或小程序码)的菜单。 支持长按识别的码 ✅ 小程序码 ✅ 微信个人码 ✅ 企业微信个人码 ✅ 普通群码

    2023年04月15日
    浏览(41)
  • 微信小程序使用--如何生成二维码

    一、生成二维码 1.获取token 参照官方文档说明: https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-access-token/getAccessToken.html 其中grant_type是写死的,appid和secret是注册小程序的时候获取的,然后会得到一个默认两小时失效的token 2.获取二维码 参照官方文档说明: https://developers.

    2024年02月04日
    浏览(61)
  • 【微信小程序付款转二维码付款】

    需要的参数:session_id, timeStamp, nonceStr, package, paySign, appid,uuid session_id是协议获取 timeStamp, nonceStr, package, paySign, appid是订单数据 uuid是调用接口获取 第一步要获取小程序的sessionId 基于pc协议不风控 获取订单数据timeStamp, nonceStr, package, paySign, appid 调用https://open.weixin.qq.com/wxarunti

    2024年02月16日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包