- 提供新的canvas2D 接口,是为了解决什么,有什么考虑?
将网络图片绘制canvas,目前,根据官方文档中,应该是2种(或及2种以上,欢迎大家补充~~~) [图片] 那么新canvas 2D接口尝试 const query = wx.createSelectorQuery().in(this) query.select('#myCanvas') .fields({ node: true, size: true }) .exec((res) => { const canvas = res[0].node const ctx = canvas.getContext('2d') const img = canvas.createImage() img.onload = () => { ctx.drawImage(img, 0, 0, 100, 100) } img.src = 'https://p0.meituan.net/myvideodistribute/0990cc2062e81ab6cc11fd8690f8755042005.jpg' // 这种方式获取canvas区域隐含的像素数据 console.log(ctx.getImageData(0, 0, 150, 100).data) }) <canvas type="2d" id="myCanvas" canvas-id="myCanvas"></canvas> 旧版canvas接口写法 const ctx = wx.createCanvasContext('myCanvas') wx.getImageInfo({ src: 'https://p0.meituan.net/myvideodistribute/0990cc2062e81ab6cc11fd8690f8755042005.jpg', success: function (res) { console.log('res', res) const poster = res.path ctx.drawImage(poster, 0, 0, 150, 100) ctx.draw() } }) // 这种方式获取canvas区域隐含的像素数据 wx.canvasGetImageData({ canvasId: 'myCanvas', x: 0, y: 0, width: 150, height: 100, success(res) { console.log(res.width) // 150 console.log(res.height) // 100 console.log(res.data instanceof Uint8ClampedArray) // true console.log(res.data) // 150 * 100 * 4 console.log(res.data.length) // 150 * 100 * 4 } }) <canvas id="myCanvas" canvas-id="myCanvas"></canvas> 虽然两种方法,都能实现将网络图片绘制进canvas。但新版的进行了createImage,将其打印的话,其实就是新建了一个img标签,并将img标签的东西绘制进canvas [图片] 同时根据报错可以看出 [图片] 新版canvas2d 在绘制图片时,类型仅支持标注的这些。 那么问题来了,为什么微信官方会仅支持以上方式进行新版canvas2d 图片的绘制,考虑是什么,解决了什么,且想问问Canvas 2D是如何提升渲染性能的? 辛苦解答~~
2020-03-26 - 多层级组件setData,会在wxml控制台复制一个相同组件?
[图片] wxml调试器中,出现了一个一模一样的组件。 代码片段:https://developers.weixin.qq.com/s/hLEFz3m37zgc 猜想问题产生原因 1)https://developers.weixin.qq.com/miniprogram/dev/framework/view/interactive-animation.html#%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%A1%88中wxs响应事件处理模式一样,为减少关联父子组件,2次的视图和逻辑层之间的通信,1次的渲染,直接将组件拷贝至页面级,这样就能减少一次通信 2)调试器wxml对于这种情况,就是这样的一种显示方式,和我们的react developer tools 一样,有自己的渲染逻辑 辛苦解答
2020-03-23 - 微信版本7.0.7swiper组件数据重叠Bug
[图片]总共3个tab,每个tab下对应数据www22222,2222,3333。但数据都重叠到了第一版tab上。 其他较低版本,运行良好,没有这个Bug。 升级微信版本后,必现
2019-09-19