代码片段 https://developers.weixin.qq.com/s/sXGa4ymR7Xc7
使用了2.9.0以上才支持的新版Canvas,
const imageData = context.createImageData(width, height) ; imageData.data[0] = 100; console.log(imageData.data[0]); // iOS上输出0 |
之后还测试了
imageData.data.set( new Uint8ClampedArray(hasExistArrayBuffer)); Object.defineProperty(imageData, 'data' , { get() { return new Uint8ClampedArray(hasExistArrayBuffer); } }); |
最终结果:
安卓上使用Object.defineProperty可劫持,也可改变数值,但是putImageData之后,再wx.canvasToTempFilePath出来的图片没有内容。并且wx.canvasToTempFilePath报错,如下图所示:
重要:iOS上三种方法都不可改变imageData.data的值。