html52.com
我爱小程序-开发者交流社区

新版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报错,如下图所示:canvasToTempFilePath报错,如下图所示:iOS上三种方法都不可改变imageData.data的值。

iOS上三种方法都不可改变imageData.data的值。



评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付