微信小程序使用canvas报:canvasToTempFilePath:fail executeCanvasMethod failed: Failed to execute ‘drawImage‘

这篇具有很好参考价值的文章主要介绍了微信小程序使用canvas报:canvasToTempFilePath:fail executeCanvasMethod failed: Failed to execute ‘drawImage‘。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

项目场景:

问题描述

原因分析:

解决方案:

尝试1:

尝试2:

尝试过程:


项目场景:

使用微信小程序的api进行canvas绘制海报或者二维码

技术:uniapp

版本:3.0.0(3.0.1也可以,低版本没有试过)

需求:点击后弹出个人二维码

微信小程序canvastotempfilepath,uniapp,微信小程序,小程序


问题描述

完整报错:canvasToTempFilePath:fail executeCanvasMethod failed: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The image argument is a canvas element with a width or height of 0.


原因分析:

这个二维码是通过一个依赖将文本生成base64图片格式,在通过另一个依赖进行转换为临时路径(两个依赖会放到下一篇博客讲感兴趣的话可以看看)通过uniapp的drawImage进行绘制图片接着就报错了,进行排查发现跟它一点关系都没有,将
draw注释掉后好了,不报错了,我就知道我的canvas是没有任何问题的,因为draw就是绘制到画布上的,不可能会报错,那么问题最大可能就是出在了二维码或者html上了


解决方案:

尝试1:

将生成二维码的依赖更换成了:uQRCode,直接画出去二维码,但就是很快就不行了,因为二维码会覆盖,(解决方法:.restore();跟save())一个回复之前的画布,一个保存当前画布,当然了draw也行给个true

微信小程序canvastotempfilepath,uniapp,微信小程序,小程序

但是这跟我的想法不太符合,于是就有了2

尝试2:

我的渲染是放在methods里面的,但是canvas是放Uview的u-popup里面的,单独放没有问题,但是加上v-if后就直接报错了,替换成v-show后变成了时不时的报错,最后没办法将组件舍去自己手写了样式,加上了visibility:hidden,点击事件的时候动态切换类,至此问题解决!!

尝试过程:

在解决这个报错的途中也找了不少的文章但是他们的方法都没有什么效果

方法1:给canvas加上宽高

方法2:删除文件

方法3:渲染的时候加上个定时器

方法4:解密微信返回的临时路径

方法5:将canvas的导出并赋给一个image

等等....

觉得有帮助的话点个赞吧!文章来源地址https://www.toymoban.com/news/detail-713659.html

到了这里,关于微信小程序使用canvas报:canvasToTempFilePath:fail executeCanvasMethod failed: Failed to execute ‘drawImage‘的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【微信小程序】canvasToTempFilePath遇到的问题

    在微信小程序开发中,经常需要将绘制好的canvas保存到本地,这就需要调用canvasToTempFilePath将canvas画布转为本地临时文件。遇到过的问题如下: 1. create bitmap failed 2. fail canvas is empty 这个问题就是canvas还没画为空拿不到转化的临时路径 跟上述问题一样,我在开发过程中也遇到过

    2024年02月11日
    浏览(35)
  • 解决苹果手机wx.canvasToTempFilePath:fail on image问题,canvas的那些坑,图片失真问题

    用小程序做过画图工具的小伙伴,可能都遇到过这个问题,程序在安卓手机和电脑上面都没有问题,但是同样的代码在苹果手机下就出现了该问题:wx.canvasToTempFilePath:fail on image。 网上有很多解决方案,比如不能加隐藏none,hidden等。这些CSS设置的初衷会为了隐藏画布,与画

    2024年02月09日
    浏览(55)
  • 微信小程序使用canvas绘制网络图片,使用canvas将图片变成圆形

    以上的写法 会造成某些图标无法绘制上去, 解决方法是在网络图片中不断嵌套,先绘制大图片,再绘制小图片的顺序 网上说使用先下载到本地,再使用img.src加载,我尝试过还是不行 长用在海报,需要将用户的头像画到canvas图片上,如: 其原理就是在图片上面放一个圆

    2024年02月13日
    浏览(70)
  • uniapp 使用canvas画海报(微信小程序)

    效果展示:  项目要求:点击分享绘制海报,并实现分享到好友,朋友圈,并保存 先实现绘制海报   下面是海报下面的分享弹窗 因为分享到朋友圈实在没找到有使用自定义按钮的可能,所以还是需要点击右上角胶囊    以上就是画海报以及分享的全部过程了,另有一个点:

    2024年02月13日
    浏览(66)
  • 微信小程序:使用canvas 生成图片 并分享

    废话不多说直接上代码!!!! 最终效果图  

    2024年02月11日
    浏览(62)
  • 微信小程序使用 canvas 2d 实现签字板组件

    本文是在微信小程序中使用 canvas 2d 来实现签字板功能; 效果图: 代码: 1、wxml 2、js 3、总结 canvas 的宽度和高度可以写死,也可以根据当前可是区域动态计算;需要注意的是 res[0].node 的宽度和高度的计算是当前 canvas 元素上的宽度和高度乘设备的 pixelRatio ;

    2024年02月09日
    浏览(49)
  • 微信小程序使用canvas生成分享海报功能复盘

    近期需要开发一个微信小程序生成海报分享的功能。在h5一般都会直接采用 html2canvas 或者 dom2image 之类的库直接处理。但是由于小程序不具备传统意义的dom元素,所以也没有办法采用此类工具。 所以就只能一笔一笔的用 canvas 画出来了,下面对实现这个功能中遇到的问题做一

    2024年02月16日
    浏览(74)
  • 微信小程序使用canvas绘制海报并保存本地相册

    在做微信小程序的时候,很多都会用到生成海报分享功能,刚好最近项目有这个需求,今天就发出来记录下 首先是使用canvas绘制一张海报,微信小程序的canvas有老版本和新版本我是用的是新版本 代码如下 js部分 我的做法是给canvas隐藏了不看到 ,等canvas绘制完毕后导出的url直接赋给

    2023年04月08日
    浏览(42)
  • uniapp微信小程序使用canvas自定义分享名片

    template js 需要分享的页面加上onShareAppMessage,在methods中定义绘画方法createCanvasImage css这里是画布的内容设置

    2024年02月14日
    浏览(58)
  • 微信小程序中使用wxml-to-canvas

    1. 下载: npm install wxml-to-canvas --save 2. json文件导入 3、使用组件  index.wxml index.js demo.js中的配置

    2024年02月13日
    浏览(47)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包