javascript - 在drawImage中使用ImageData对象

标签 javascript putimagedata

是否可以使用ImageData数组对象来获取Image()对象。我的最终目标是使用drawImage而不是putImageData,因为putImageData太慢(来自stackoverflow类似的qs和我自己的测试)。我所拥有的只是 ImageData 数组,我想将其绘制在 Canvas 上现有图像的顶部。

最佳答案

您可以从 ImageData 创建一个 ImageBitmap 并将其传递给 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 的大小它自己的。

关于javascript - 在drawImage中使用ImageData对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38384001/

相关文章:

javascript - jQuery - 根据事件 Div 中元素的实例数创建列

javascript - 复制到剪贴板时如何去掉 HTML 标签并保留格式?

javascript - putimagedata 绘制像素数据 4 次/不按比例

javascript - 从平面 json 生成(多级)flare.json 数据格式

javascript - Jquery:将同一行上的复选框的值求和到同一行上的文本字段

php - 复选框的 javascript Jquery 和 php 按钮有问题

javascript - 在 Canvas 中迭代像素并将其中一些像素复制到另一个 Canvas 中的最快方法

javascript - 使用 putImageData 从 Canvas 上的像素数组绘制图像

javascript - 如何从 XMLHttpRequest 响应设置 HTML5 Canvas ImageData?