微信小程序wx.createCanvasContext废弃,使用wx.createOffscreenCanvas接口的绘制canvas 2d海报遇到的踩坑经验。

这篇具有很好参考价值的文章主要介绍了微信小程序wx.createCanvasContext废弃,使用wx.createOffscreenCanvas接口的绘制canvas 2d海报遇到的踩坑经验。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

<canvas id="myCanvas" type="2d" />

在wxml页面写id,canvas-id已经没用了。然后像html一样,使用js获取这个canvas标签组件,在微信的js获取使用wx自带的方法。如下 文章来源地址https://www.toymoban.com/news/detail-504188.html

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

      //在这里可以下获取到canvas组件了,然后创建成画板画布。

        var rect = cres[0]

         console.log(rect)

         var textCanvas = rect.node  // 重点1

         var ctx = textCanvas.getContext('2d')  // 重点2//创建画布

         //这里踩坑1,我直接绘制,发现绘制的宽高和获取到的宽高总有出入,明明打印canvas的宽高和我设置的宽高一样,但是绘制在页面填充颜色,发现宽度小了很多。

        // 后面经过查了大量文献,发现原来需要根据手机的像素同比1:1化,代码如下

        const dpr = wx.getSystemInfoSync().pixelRatio

         textCanvas.width = rect.width * dpr

         textCanvas.height = rect.height * dpr

         ctx.scale(dpr, dpr)

         //然后下面就跟我们在html绘制一样,比如绘制文字

         ctx.font = `bold 18px serif`

         ctx.fillStyle = "#ff6800"

         ctx.fillText("文字",10,10)

         //接下来是绘制图片了,这里踩坑2

         //1.踩坑2,绘制图片需要把图片变成画布再绘制,

        this.getImage("/assets/logo.png").then(image=>{

               ctx.drawImage(image, 10, 20, 38, 38)

        })

})

// 获取图片对象

  async getImage (url,width, height) {  

    const off = wx.createOffscreenCanvas({type:'2d'})

    const image = off.createImage()   

    await new Promise((resolve, reject)=>{      

      image.onload = resolve  // 绘制图片逻辑

      image.src = url

    })

    return image

  },

到了这里,关于微信小程序wx.createCanvasContext废弃,使用wx.createOffscreenCanvas接口的绘制canvas 2d海报遇到的踩坑经验。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 微信小程序使用本地存储方法wx.setStorageSync()和wx.getStorageSync()

    微信小程序的本地存储可以使用wx.setStorageSync()和wx.getStorageSync()方法实现 使用wx.setStorageSync()方法可以将数据以键值对的方式存储到本地存储中: 获取数据:使用wx.getStorageSync()方法可以从本地存储中获取数据: 更新数据:要更新已经存在的数据,只需重新使用wx.setStorageSync

    2024年02月11日
    浏览(48)
  • 微信小程序学习笔记——WX:key的使用

    wx:key一般是用在wx:for或者其他需要动态渲染的地方,采用wx:key可以对渲染列表中的元素给定唯一标识,使当我们的数组发生改变时,渲染中的原数据可以保持自己的特性。 举个例子,现在有个点击按钮勾选的例子,当我们勾选羔羊排骨一条,点击增加数据后,羔羊排骨左侧的

    2024年02月07日
    浏览(36)
  • 【微信小程序】后台数据交互于WX文件使用

    目录 一、前期准备 1.1 数据库准备 1.2 后端数据获取接口编写 1.3 前端配置接口 1.4 封装微信的request请求   二、WXS文件的使用 2.1 WXS简介 2.2 WXS使用   三、后台数据交互完整代码 3.1 WXML 3.2 JS 3.3 WXSS 效果图  创建数据库: 注意: 字符集选择 utf8mb4 ,因为可能用存储用户信息,

    2024年02月08日
    浏览(40)
  • 微信小程序不能使用wx.getlocation的解决方法

    1、没在小程序开发平台申请开通wx.getlocation API; 2、没有在app.json文件中声明配置; 3、开发版本库较高,调到2.25.3试试; 4、打开微信小程序页面右上角三个点,打开小程序设置,查看是否允许使用位置信息。

    2024年02月11日
    浏览(48)
  • 【微信小程序】使用 wx.request 方法进行异步网络请求

    在微信小程序中,你可以使用 wx.request 方法进行异步网络请求,并将获取到的列表数据渲染到 UI 上。 首先,在页面的 data 中定义一个数组变量,用于存储获取到的列表数据,例如: 然后,在页面的生命周期函数 onLoad 或需要触发网络请求的函数中,使用 wx.request 方法发送异

    2024年02月16日
    浏览(50)
  • uni编写微信小程序使用wx.startLocationUpdateBackground监听位置

    需求:小程序退出或者微信在后时,实时获取当前位置 代码部分: manifest.json文件中需配置 requiredBackgroundModes需设置:location 判断用户有没有开启授权: 使用uni.getSetting来获取用户的授权 没有就直接使用uni.authorize

    2024年02月05日
    浏览(35)
  • 微信小程序之网络数据请求 wx:request的简单使用

    出于安全性方面的考虑,小程序官方对 数据接口的请求 做出了两个限制: 只能请求 HTTPS 类型的接口必须将接口的域名添加到信任列表中 . 在自己的微信小程序开发的后台管理中添加相应的服务器域名,配置步骤: 登录微信小程序管理后台 - 开发 - 开发设置 - 服务器域名

    2024年02月16日
    浏览(38)
  • 微信小程序弹窗提示:wx.showToast、wx.showModal、wx.showLoading的使用场景与实现

    使用场景 :常规的提示,没有确定和取消按钮。 例: 属性: title:提示的内容 icon:显示的图标,合法值有success、error、loading、none image:自定义图标的本地路径,优先级高于icon duration:提示的延迟时间 mask:是否显示透明蒙层,防止触摸穿透 success:API调用成功后的回调函

    2024年02月09日
    浏览(36)
  • 微信小程序中使用wx.navigateTo跳转时页面出现空白

    在微信小程序中当触发点击事件后跳转的页面时,跳转的页面出现空白,控制台报Page \\\"pages/outline-xi/outline-xi\\\" has not been registered yet.可能是因为使用了tabbar时导致的app.json没有使页面初始化,需要把不是tabbar的页面调在前面就能解决问题。  

    2024年02月16日
    浏览(34)
  • 微信小程序中使用 wx.getLocation获取当前详细位置并计算距离

    wx.getLocation只能够获取经纬度,不能够拿到详细地址;如果你的项目刚好也使用腾讯地图的api,那么可以通过腾讯地图的逆解析就能拿到详细地址了; 先介绍一下wx.getLocation()方法的使用; 此方法可以获取当前的经纬度和速度、高度;官网链接 想要使用这个方法,先需要在

    2024年02月08日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包