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

news2024/12/24 21:16:08

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

//绘制图片
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));

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/66993.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Eclipse+Maven+Tomcat 集成开发环境配置

在Eclipse中创建的Dynamic Web Project 类型的Web 项目&#xff0c; 通过Run As -> Run on Server 可以添加本地安装的Tomcat&#xff0c;在Eclipse 中启动Tomcat 进行整合开发。 但是如果创建的是Maven类型的项目&#xff0c;如果没有导入额外的包还正常&#xff0c; 但是…

Nginx入门到搭建

前言 上一篇文章我们分享了Linux的软件安装以及项目后端的部署&#xff0c;本篇文章将要分享的内容是&#xff0c;Nginx的入门安装、反向代理、负载均衡等。 一、Nginx简介 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件&#xff08;IMAP/POP3&#xff09; 代理服务…

如何让彩色网页变灰

如何让彩色网页变灰 在特殊的日子&#xff08;如清明节特殊纪念日等&#xff09;&#xff0c;需要让彩色网页变成灰色&#xff08;黑白色&#xff09;如下图所示&#xff0c;怎么做到呢&#xff1f; 下面先给出彩色正常的网页示例源码&#xff1a; <!DOCTYPE html> <…

消除数据库表中的重复组

重复组是在整个数据库表中重复的一系列字段/属性。大型和小型组织都面临着一个普遍的问题&#xff0c;这个问题可能会带来多种后果。例如&#xff0c;在不同区域中存在的同一组信息会导致数据冗余和数据不一致。而且&#xff0c;所有这些重复的数据可能会占用大量宝贵的磁盘空间…

【计算机图形学入门】笔记2:向量与线性代数(图形学中用到的线性代数)

02向量与线性代数&#xff08;图形学中用到的线性代数&#xff09;1.A Swift and Brutal Introduction to Linear Algebra!简单粗暴入门线性代数1.Graphics’ Dependencies 图形学依赖的一些知识2.Vectors 向量1.Dot product向量的点乘2.向量的叉乘Cross product3.矩阵Matrix4.…

Linux——进程并发控制(系统中的POSIX信息量机制、进程间通信)

目录 一、Linux系统中POSIX信号量机制 1、POSIX有名信号量 &#xff08;1&#xff09;常用函数 &#xff08;2&#xff09;有名信号量应用于多线程的例子 &#xff08;3&#xff09;有名信号量应用于多进程 2、POSIX无名信号量 &#xff08;1&#xff09;常用函数 &…

基于jsp+mysql+ssm大学生社交平台-计算机毕业设计

项目介绍 本系统需要满足校园网上社交方面的基本需要。需要实现用户所要求的功能&#xff0c;方便他们进行交流。在界面上力求做到美观、操作方面尽量避免由于会员操作不当带来系统的出错现象。对数据库操作的性能需要做到优化&#xff0c;数据库过大将会影响运行速度。编程过…

(四) Docker镜像

Docker镜像一、概述二、镜像加载原理三、镜像注意点四、Docker镜像commit操作五、总结一、概述 书面解释 是一种轻量级、可执行的独立软件包&#xff0c;它包含运行某个软件所需的所有内容&#xff0c;我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时…

开关电源环路稳定性分析(04)-电压控制模式

大家好&#xff0c;这里是大话硬件。 在前3节分析了一个开环电源是如何工作的&#xff0c;开环电源的弊端也很明显&#xff0c;无法维持输出的稳定&#xff0c;不能抗扰动&#xff0c;无法得到我们想要的电压等等。因此&#xff0c;开关电源的闭环环路对稳定性来说非常重要。 …

LeetCode简单题之统计共同度过的日子数

题目 Alice 和 Bob 计划分别去罗马开会。 给你四个字符串 arriveAlice &#xff0c;leaveAlice &#xff0c;arriveBob 和 leaveBob 。Alice 会在日期 arriveAlice 到 leaveAlice 之间在城市里&#xff08;日期为闭区间&#xff09;&#xff0c;而 Bob 在日期 arriveBob 到 l…

大数据:Storm和流处理简介

一、Storm 1.1 简介 Storm 是一个开源的分布式实时计算框架&#xff0c;可以以简单、可靠的方式进行大数据流的处理。通常用于实时分析&#xff0c;在线机器学习、持续计算、分布式 RPC、ETL 等场景。Storm 具有以下特点&#xff1a; 支持水平横向扩展&#xff1b;具有高容错…

信息安全技术 信息安全风险评估方法 汇总

概述 风险评估应贯穿于评估对象生命周期 各阶段中。评估对象生命周期各阶段中涉及的风险评估原则和方法昆一致的&#xff0c;但由干各阶段实施内容对象、安全需求不同.使得风险评估的对象、目的、要求等各方面也有所不同。在规划设计阶段&#xff0c;通过风险评估以确定评估对…

(推荐阅读)H264, H265硬件编解码基础及码流分析

需求 在移动端做音视频开发不同于基本的UI业务逻辑工作,音视频开发需要你懂得音视频中一些基本概念,针对编解码而言,我们必须提前懂得编解码器的一些特性,码流的结构,码流中一些重要信息如sps,pps,vps,start code以及基本的工作原理,而大多同学都只是一知半解,所以导致代码中的…

JAVA-元注解和注解

故事背景&#xff1a;罗芭是一名正在学习java的妹子&#xff0c;最近看甲骨文的官方文档&#xff0c;学到了注解Annotation这里&#xff0c;发现注解我可以自定义&#xff0c;但罗芭不会诶。但是布洛特 亨德尔已经学习过了java注解。 罗芭&#xff0c;help me~ 唰唰唰&#xff…

Redis05:Redis高级部分

Redis高级部分SpringBoot整合Redis整合测试序列化配置解决乱码问题redis自定义RedisTemplateSpringBoot整合Redis 说明&#xff1a;在SpringBoot2.x之后&#xff0c;原来使用jedis被替换成了letttuce! jedis:采用的时直连&#xff0c;多个线程操作的话&#xff0c;是不安全的&a…

MySQL下载和安装(Windows)

前言&#xff1a;刚换了一台电脑&#xff0c;里面所有东西都需要重新配置&#xff0c;习惯了所有东西都配好的装配&#xff0c;突然需要自己从头来配才发现不知道如何下手&#xff0c;所以决定将这些步骤都做个记录&#xff0c;以便后续查看。仅限没有安装过的人使用&#xff0…

关于海量级存储用户标签体系架构

项目场景&#xff1a; 对于我们运营来说&#xff0c;需要给用户打上不同的身份标签。比如用户是否偏重&#xff0c;身高范围&#xff0c;是不是我们的会员。。。等等一些标签。 比如我们有100W用户。我们需要来给100W用户打上接近200个不同身份的标签应该如何去做&#xff1f…

【数据集NO.4】遥感图像数据集汇总

文章目录前言一、NWPU VHR-10卫星图像数据集二、RSOD三、DIOR四、DOTA五、HRSC2016六、UCAS AOD七、HRRSD八、SSDD九、DLR 3K Vehicle前言 数据集对应应用场景&#xff0c;不同的应用场景有不同的检测难点以及对应改进方法&#xff0c;本系列整理汇总领域内的数据集&#xff0…

《MySQL实战45讲》——学习笔记20 “幻读、全表扫描的加锁方式、间隙锁、next-key lock“

本篇介绍MySQL在可重复度RR隔离级别下&#xff0c;引入的一种锁机制&#xff1a;间隙锁 (Gap Lock)&#xff1b;间隙锁与事务相关的表锁、行锁不同&#xff0c;它锁的是“往这个间隙中插入一个记录”这个操作&#xff0c;除此之外间隙锁之间都不存在冲突关系&#xff08;因而有…

Spring @Autowire注解源码详解

目录 一&#xff1a;触发方式&#xff1a; 二&#xff1a;源码解析 2.1 扫描注入点 2.2 属性赋值 一&#xff1a;触发方式&#xff1a; 1.Spring容器在每个Bean实例化之后&#xff0c;调用AutowireAnnotationBeanPostProcessor的postProcessMergedBeanDefinition方法进行扫…