收藏
回答

新版Canvas的createImageData方法返回的imageData.data属性不能修改?

代码片段     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的值。



最后一次编辑于  2019-11-06
回答关注问题邀请回答
收藏
登录 后发表内容
问题标签