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

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

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

原因:调取 wx.canvasToTempFilePath 接口获取不到canvas
(1)检查canvasId是否对应
canvas控件中用到的跟canvasToTempFilePath用到的canvasId要一致
(2)检查canvas画布是否被隐藏
可能在canvas画布上用到了hidden属性用来隐藏画布
可以让画布的位置在屏幕之外

<canvas canvas-id='canvasId' style="width: {{ cWidth }}px; height: {{ cHeight }}px;position: absolute;left: -1000rpx;top: -1000rpx;"></canvas>

(3)检查wx.canvasToTempFilePath方法是否在draw()的回调里面
注意:因为draw的回调函数是异步的,在调用canvasToTempFilePath方法时可能图片还没有生成完,所以要适当的加一些时间延迟。多次尝试ios手机可不加定时器,安卓手机基本上都要加,延迟的时间跟手机的性能有关,性能较弱的安卓机出现问题的概率比较大,延迟的时间试过200还是会偶现问题,设置为500基本有效。

var ctx = wx.createCanvasContext('canvasId')
ctx.drawImage(rep.path, 0, 0, canvasWidth, canvasHeight);
ctx.draw(false,setTimeout(() => {
  wx.canvasToTempFilePath({
    canvasId: 'canvasId',
    fileType: 'jpg',
    success(res) {
      console.log(res.tempFilePath);
    },
    fail(error) {
      console.log(error);
    }
  })
},500));

(4)检查是否在自定义组件中使用,如果是则要传入当前组件实例的this
【微信小程序】canvasToTempFilePath遇到的问题文章来源地址https://www.toymoban.com/news/detail-511841.html

//绘制图片
let that = this
var ctx = wx.createCanvasContext('canvasId',that)
ctx.drawImage(rep.path, 0, 0, canvasWidth, canvasHeight);
ctx.draw(false,setTimeout(() => {
  wx.canvasToTempFilePath({
    canvasId: 'canvasId',
    fileType: 'jpg',
    success(res) {
      console.log(res.tempFilePath);
    },
    fail(error) {
      console.log(error);
    }
  },that)
},500));

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

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

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

相关文章

  • 微信小程序自定义tabbar容易遇到的问题

    1.自定义tabbar不生效: 原因文件名称不正确,必须使用custom-tab-bar命名 2.切换延迟问题,如A→B,需要点击两次icon才能正确选中 解决方法如下:   在跳转的页面的show生命周期里面加上,selected是custom-tab-bar里面当前设置选中下标的参数名,而值是对应tabbar数组里面对应的下标

    2024年02月14日
    浏览(32)
  • 微信小程序父组件传递子组件遇到的失效问题

    首先这里的重点是微信小程序的父组件传参在子组件传递时失效问题。 1.检查你的语法是否正确。 这一点分4步 1)检查你的子组件的继承情况。(js文件) 2)检查你的子组件调用(wxml文件)  3)检查你的父组件传参(json文件) 4)检查你的父组件定义(wxml文件) 这四部正常

    2024年02月16日
    浏览(35)
  • 微信小程序picker组件遇到的问题以及解决办法

    先来看一下官方文档中picker的基本概念: 从底部弹起的滚动选择器,现支持三种选择器,通过mode来区分,分别是普通选择器,时间选择器,日期选择器,默认是普通选择器。 重要属性 range: 选取范围,数据类型为Array / Object Array,mode为 普通选择器 时,range 有效; value:

    2024年02月11日
    浏览(38)
  • 微信小程序遇到的一些问题及解决方法(设备安装)

    1)、byte数组 2)、将byte数组转换为字符串 3)、将字符串转换为byte数组 4)、在Vue中使用byte数组。例如,我们可以使用axios发送包含byte数组的POST请求 1)、路由传参 2)、本地缓存传参 3)、全局变量传参 4)、URL传参 Viewer 下载地址: Viewer gitee Viewer github 1)、拿到所有节点 var zTree =

    2024年02月09日
    浏览(33)
  • 微信小程序wx.canvasToTempFilePath,draw()报错 ctx.draw is not a function

    微信小程序canvas转图片临时路径,使用wx.canvasToTempFilePath方法,官方文档中写了要在 draw() 回调里调用该方法才能保证图片导出成功。 然而,显示是写在draw()里面会报错draw is not a function,查阅了一下资料,新版 Canvas 2D 接口与 Web 一致,是没有 draw 方法的。https://developers.weix

    2024年02月11日
    浏览(39)
  • uniapp编译成微信小程序中遇到的兼容性问题

    模板里面如果存在这样的语法,则会报错Bad value with message;然而||\\\'\\\'和||[]则不会报错;如下所示; 解决方法:建议java后端加个拦截器统一处理下null 建议使用计算属性来访问全局变量; 原因: 排查循环依赖的问题 ,如下注释的代码即为循环依赖 uni.scss文件一定不能引用过多的样

    2024年02月07日
    浏览(50)
  • 微信小程序使用mp-html遇到的问题并解决

    1、在本地配置寻找勾选使用npm 查了之后发现2023了 不需要勾选了 默认使用npm 2、在微信小程序编辑器左上角的 工具--构建npm 然后就报错了 于是搜索到以下的内容: 没有找到可以构建的NPM包,请确认需要参与构建的npm都在 `miniprogramRoot` 目录内 --- 微信小程序报错 https://blog.

    2024年02月07日
    浏览(34)
  • 微信小程序使用canvas报:canvasToTempFilePath:fail executeCanvasMethod failed: Failed to execute ‘drawImage‘

    目录 项目场景: 问题描述 原因分析: 解决方案: 尝试1: 尝试2: 尝试过程: 使用微信小程序的api进行canvas绘制海报或者二维码 技术:uniapp 版本:3.0.0(3.0.1也可以,低版本没有试过) 需求:点击后弹出个人二维码 完整报错:canvasToTempFilePath:fail executeCanvasMethod failed: Fai

    2024年02月08日
    浏览(39)
  • 微信小程序vant安装使用过程中遇到无法构建npm的问题

    官网地址,然而如果完全按照这个教程来,实际上是缺少步骤的,需要补充一些步骤(参考https://www.bilibili.com/video/BV1vL41127Er)

    2024年02月03日
    浏览(43)
  • uniapp微信小程序遇到scroll-into-view不生效的问题

    简单做个记录 正常按照uni官方文档配置就好,之前项目也做过类似需求,但是前两天遇到了设置不生效的问题。 一、想到的几个可能情况: 1、scroll-view 没有高度。         方式1:初始高度设置为0 通过flex: 1 1auto;填充满剩余高度          方式2:本地项目使用的方式,

    2024年04月09日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包