小程序canvasToTempFilePath调用报错create bitmap failed

小程序canvasToTempFilePath调用报错create bitmap failed,第1张

这一报错在微信开发者论坛中被多次提及,最多被提到的就是这一方法。

wx.draw()是一个异步执行的api,canvasToTempFilePath需要在其回调中执行。延迟 200毫秒 一般就可以解决这个问题。

当这个api只执行一次时延迟200毫秒其实无所谓,但是多次调用时,这个延迟也浪费了不少时间。对于性能强大的手机,这也是一种浪费,一般只有性能较弱的安卓机才会出现这个问题。所以我更建议大家使用下面一个。

canvasToTempFilePath本身也是异步api,有错误回调可以使用。

我的项目中需要绘制的图片大小为180*180px,耗时基本在50-100ms左右。报错一次以后canvas基本也就准备好了,一般不会错第三遍。

题外话:这一个api的耗时与画布大小密切相关,也建议大家绘制图片时一定要控制好canvas画布大小。比方说,绘制200*200的图片,canvas要大小一致。尤其是图片数量比较大时,在模拟器上体现不出差别,但是手机上影响很大。

1、首先在电脑中打开文件上传工具,然后在软件页面中,点击菜单栏 【新建】图标。

2、然后在打开的窗口中,填写ip、账号、密码,点击连接,如下图所示。

3、接着在打开的窗口中,选中本地文件或者图片,如下图所示。

4、然后将文件直接拖拽到服务器内(如图所示)。

5、完成文件上传,如下图所示就完成了,这样就传输到自己的服务器中了。

canvas转换图片api不相同,并且参数不相同,支付宝参数与支付宝开发者文档中的参数都出现不相同

下面我们看微信的wx.canvasToTempFilePath和支付宝ctx.toTempFilePath中success返回的参数差异,我们如果要获取对应的图片,wx返回两种图片格式,一种是本地图片,一种是http协议内部临时图片(tempFilePath)。而支付宝只存在一种图片格式,http协议临时图片(apFilePath)。

微信端中如果需要绘画canvas生成的图片进已有的canvas,采用drawImage,其中第一个参数是图片地址,微信端中要采用tempFilePath参数,支付宝端需要采用apFilePath


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11521568.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存