请官方尽快修复canvas相关的bug,谢谢
发布于 6 年前 作者 xiulan82 3450 次浏览 来自 问答

这些天用canvas做小程序过程中,发现了些许bug,具体如下:

1、利用

wx.canvasToTempFilePath生成canvas绘图的对应图片路径时,必须利用点击或者滑动事件才能调用这个wx.canvasToTempFilePath API,直接放在onload或者成功的回调函数中,执行不了wx.canvasToTempFilePath这个API.

2、利用wx.canvasToTempFilePath生成canvas绘图的对应图片路径时然后利用wx.previewImage()预览图片时在安卓上面的字体老是变模糊,图片效果也不太好,非得在

 destWidth: 100,
  destHeight: 100,

这里设置是屏幕宽高的2倍或者3倍,然后预览的效果才会好一点。(而且这种预览只能在真机下面,模拟机下面图片放大太大无法查看)

3、canvas绘制的图片不会跟着swiper的轮播图一起动,这个bug请尽快修复。

4、由于swiper无法带着canvas图一起滑动,然后我利用普通view包着canvas,然后利用定位,改变canvas的left的值,也是在左滑右滑过程中有问题(给canvas绘制的图片加过度transtion动画也没有效果)。   -----模拟机上面没问题,真机有问题!!

以上,请官方核实并尽快修复,如有需要,我可以把代码发给你们核实一下。


5 回复

wx.canvasToTempFilePath生成canvas绘图的对应图片路径时,必须利用点击或者滑动事件才能调用这个wx.canvasToTempFilePath API,直接放在onload或者成功的回调函数中,执行不了wx.canvasToTempFilePath这个API.

决解了吗

你好,canvas在ios真机上会上下滑动怎么处理?其它元素都不动,但上下滑动页面只有canvas会上下滚动

第二点,destWidth和destHeight单位是物理像素(pixel),canvas绘制的时候用的是逻辑像素(物理像素=逻辑像素 * density),所以这里如果只是使用canvas中的width和height(逻辑像素)作为输出图片的长宽的话,生成的图片width和height实际上是缩放了到canvas的 1 / density大小了,所以就显得比较模糊了。

所以这里你需要指定真实图片的width和height时,乘于 density就是canvas的大小了。

1,2 两点我们会尽快修复

3,4 由于 canvas 是原生组件,目前所有原生组件都无法随着swiper scroll-view等移动,这个是框架问题,我们正在准备解决方案

我用canvas画了一个类似墨迹天气的气温曲线的折线图,不过图需要左右移动(canvas图较长),类似overflow-x的效果,在微信开发者工具中是好的,我画完后用真机一跑,发现结果canvas只有屏幕的大小,且固定在屏幕中,怎么解决这个问题?

回到顶部