是否可以使用imagedata数组对象来获取Image()对象。我最终的目标是使用drawImage而不是putImageData,因为putImageData太慢了(从stackoverflow类似的qs和我自己的测试)。我只有imagedata数组,我想在画布上的现有图像上绘制。
答案 0 :(得分:2)
您可以从ImageBitmap
创建ImageData
并将其传递给drawImage()
。
https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/createImageBitmap
类似的东西:
const imgdata = ...;
const ctx = ...;
createImageBitmap(imgdata).then(function(imgBitmap) {
ctx.drawImage(imgBitmap, ...remaining args);
});
我能够做到这一点来扩展我所拥有的ImageData
,因为putImageData
没有缩放参数。不幸的是,IE,Edge和Safari看起来不支持createImageBitmap()
。
值得一提的是,对于我的情况(调整ImageData
的大小),createImageBitmap()
确实有额外的选项来自行调整结果ImageBitmap
的大小。