Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将图像转换为图像数据,反之亦然,无需将图形转换为画布_Javascript_Html_Canvas - Fatal编程技术网

Javascript 将图像转换为图像数据,反之亦然,无需将图形转换为画布

Javascript 将图像转换为图像数据,反之亦然,无需将图形转换为画布,javascript,html,canvas,Javascript,Html,Canvas,我想知道是否有一种方法可以将图像转换为imagedata,反之亦然,而无需绘制画布 我知道可以使用getImageData()和toDataURL()方法复制画布,但是如果我更喜欢使用imc.src路径并将其直接转换为imagedata,该怎么办。或者将imagedata直接转换为DataURL,而不将其传递到画布 我认为这个问题的答案是否定的。如果您查看,您将看到它非常直接地绑定到canvas元素,并且它的所有属性都是只读的。此外,如果您弹出控制台并尝试新建ImageData,您将看到不允许您

我想知道是否有一种方法可以将图像转换为
imagedata
,反之亦然,而无需绘制画布


我知道可以使用
getImageData()
toDataURL()
方法复制画布,但是如果我更喜欢使用
imc.src
路径并将其直接转换为
imagedata
,该怎么办。或者将
imagedata
直接转换为
DataURL
,而不将其传递到画布

我认为这个问题的答案是否定的。如果您查看,您将看到它非常直接地绑定到canvas元素,并且它的所有属性都是只读的。此外,如果您弹出控制台并尝试
新建ImageData
,您将看到不允许您自己从头构造一个,并且函数内容是本机代码

如果有人能找到这样做的方法,我会印象深刻——你永远不知道你不知道什么。但是,由于规范明确指出这不可能,并且已经做出努力来防止它发生,我认为这可能不是一个好的选择


也许你面临的问题还有另一个解决办法。如果您将问题重新表述为对您的问题有更广泛的看法,我们中的一些人可能会建议可能的替代解决方案,正如您在第一条评论中开始看到的那样。

为什么不直接在屏幕上显示出来呢?我想这正是我想要的。感谢您如此快速的回复。我知道可以使用createImageData()方法创建新的ImageData对象。我还看到过将ImageData.data设置为变量的代码,然后修改并传回该变量,但在再次查看之后,我看到设置了虚拟画布。使用虚拟画布可以实现我的要求吗?是的,只要您使用画布,就可以毫无问题地与ImageData交互。如果不想让用户看到,可以使用屏幕外或隐藏的画布,但必须使用画布。