gpt4 book ai didi

javascript - 在 JS 中创建没有 Canvas 实例的 CanvasImageData 对象

转载 作者:太空狗 更新时间:2023-10-29 16:08:55 25 4
gpt4 key购买 nike

我是 Javascript 新手。我正在使用 canvas 进行一些图像处理,并且我正在尝试创建一个新的 CanvasImageData 对象而不实际引用特定的 Canvas。

即。

oImageData = CanvasRenderingContext2D.createImageData(vCSSWidth, vCSSHeight)

(来自 MSDN)

    // Why can't I write:
var image_data = CanvasRenderingContext2D.createImageData(50, 50);
// or:
var image_data = CanvasRenderingContext2D.prototype.createImageData(50, 50);
// ?

// Instead I must do:
var canvas = document.createElement("canvas");
var image_data = canvas.createImageData(50, 50);

有没有办法在没有 Canvas 实例的情况下做到这一点?如果不是,有什么原因吗?

谢谢!

最佳答案

您当然可以从接口(interface)原型(prototype)对象中引用 createImageData:

CanvasRenderingContext2D.prototype.createImageData.call({ }, 100, 100); // ImageData

但是,某些环境(例如 WebKit)对要调用 createImageData 方法(可能还有其他方法)的对象类型添加了限制:

CanvasRenderingContext2D.prototype.createImageData.call({ }, 100, 100); // TypeError: Illegal invocation

这至少适用于 Firefox nightly(刚刚检查过)。

console.log 提醒我其他 WebKit 的上下文限制:

console.log.call({ }, 1); // TypeError: Illegal invocation
console.log.call(console, 1); // logs 1

关于javascript - 在 JS 中创建没有 Canvas 实例的 CanvasImageData 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7694767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com