有没有人碰巧知道当前画布像素数据规范在各种浏览器中有多远?如果“不那么远”,以前的规格是什么?
当您致电或推送像素时,您会收到/发送:
ImageData
data: Uint8ClampedArray
width: Number
height: Number
但我知道它过去只是:
{
data: Array
width: Number
height: Number
}
因此,如果我生成 ImageData,我该如何检测我需要生成什么? ImageData && Uint8ClampedArray
是否足够?我立即回到Object / Array
还是别的什么?在某些时候是不是有像素阵列?
[编辑] caniuse说IE10和Opera Mini不支持Uint8ClampedArray,所以......?
答案 0 :(得分:2)
调用ctx.getImageData()
时,the specs要求UserAgent返回TypedArray而不指定哪种类型。 TypedArray的The support以IE10开头。但是,就像在IE9中一样,ImageData
对象的数据属性是CanvasPixelArray
,它没有可用的构造方法。
但无论如何,最好和 IMK 只能跨浏览器来获取ImageData
对象所需的正确ArrayBuffer,就是调用ctx.createImageData(width,height)
。
然后你可以得到它的data
数组,你确定它的类型是正确的。