当前位置: 首页 > news >正文

uniapp中使用原生canvas标签绘制视频帧来模拟拍照,拍照后将图绘制在另外一个canvas上编辑画图,这样反复操作

uniapp中使用原生canvas标签绘制视频帧来模拟拍照,拍照后将图绘制在另外一个canvas上编辑画图,这样反复操作会导致ios系统上白屏,canvas2d上下文为null,经查阅找到相关资料
IOS 创建Canvas过多导致getContext(‘2d’) 返回null
总 Canvas 内存使用超过最大限制 (Safari 12)
从一个 bug 中延伸出 canvas 最大内存限制和浏览器渲染原理
可以提供一些启发解决思路,最终在项目中这样解决的

beforeDestroy() {this.timer && clearInterval(this.timer);this.closeCamera()this.video = nullif(this.canvas){this.canvas.width = 0this.canvas.height = 0this.canvas = nullthis.canvas2d = null}if(this.cameraCanvas){this.cameraCanvas.width = 0this.cameraCanvas.height = 0this.cameraCanvas = nullthis.cameraCanvas2d = null}
},

项目中还用了fabricjs,同样需要

fabricCanvasDispose() {console.log('释放内存')if (this.fabricCanvas) {let el = this.fabricCanvas.getElement()this.fabricCanvas.dispose();el.remove()this.fabricCanvas = null;}if (this.canvas) {this.canvas.width = 0this.canvas.height = 0this.canvas = null;this.canvas2d = null;}
}
http://www.lryc.cn/news/147054.html

相关文章:

  • 机器视觉工程师们,学习是工作以外的事情
  • 数据驱动的生活:探索未来七天生活指数API的应用
  • 【数据分享】2006-2021年我国城市级别的集中供热相关指标(免费获取\20多项指标)
  • 2022年研究生数学建模竞赛优秀论文汇总
  • 阿里云申请免费SSL证书的两种验证方式及配置服务器Tomcat升级HTTPS协议
  • SQL Server 和 MySql 语法和关键字的区别
  • 2023_Spark_实验三:基于IDEA开发Scala例子
  • 2023年高教社杯数学建模思路 - 案例:异常检测
  • C# Dapper 操作Oracle数据库
  • element侧边栏子路由点击不高亮问题
  • C# 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
  • Linux 进程的睡眠和唤醒详解
  • AI 绘画Stable Diffusion 研究(十五)SD Embedding详解
  • 在Jupyter Notebook中添加Anaconda环境(内核)
  • 适配器模式简介
  • MyBatis —— 多种查询及映射关系
  • 腾讯云服务器镜像TencentOS Server操作系统详细介绍
  • Docker 中下载各版本的 CentOS、CentOS Steam 方式
  • 多线程使用HashMap,HashMap和HashTable和ConcurrentHashMap区别(面试题常考),硬盘IO,顺便回顾volatile
  • 专线连接交换机设置 – 如何实现高效率的网络连接?
  • C#,数值计算——Midexp的计算方法与源程序
  • 微信小程序使用本地存储方法wx.setStorageSync()和wx.getStorageSync()
  • 题解:ABC317C - Remembering the Days
  • 【CSS】简记CSS效果:通过transition(动画过渡属性)实现侧边栏目滑入滑出
  • LeetCode——最大子数组和(中等)
  • Zookeeper集成SpringBoot
  • ModaHub魔搭社区:星环科技致力于打造更优越的向量数据库
  • Dubbo默认使用什么序列化框架?还有哪些?
  • 攻防世界-What-is-this
  • [C++]构造与毁灭:深入探讨C++中四种构造函数与析构函数