在drawImage中使用imagedata对象

时间:2016-07-14 20:49:20

标签: javascript putimagedata

是否可以使用imagedata数组对象来获取Image()对象。我最终的目标是使用drawImage而不是putImageData,因为putImageData太慢了(从stackoverflow类似的qs和我自己的测试)。我只有imagedata数组,我想在画布上的现有图像上绘制。

1 个答案:

答案 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的大小。