Node-vibrant: 无法在“CanvasRenderingContext2D”上执行“getImageData”:画布已被跨域数据污染

创建于 2019-03-17  ·  5评论  ·  资料来源: Vibrant-Colors/node-vibrant

3.1.0 及更高版本。
在版本 3.0.0 它不会发生。
堆栈跟踪:
SecurityError:无法在“CanvasRenderingContext2D”上执行“getImageData”:画布已被跨域数据污染。
错误:无法在“CanvasRenderingContext2D”上执行“getImageData”:画布已被跨域数据污染。
在 BrowserImage.getImageData (browser.js?cf4e:105)
在 BrowserImage.ImageBase.applyFilter (base.js?de7c:22)
在 Vibrant._process (vibrant.js?b6c6:22)
...

bug investigation

最有用的评论

大家好 - 抱歉无线电静默一三秒。 最近为自己做了很多事情。 我距离解决这个问题还有大约两周的时间(并修复其他一些非常严重的错误),但我会讨论一些与crossOrigin相关的东西,我能想到的如果其他人正在调查它,我会尽力提供帮助(我们喜欢 PR 并帮助调查!♥)

有问题的代码添加了#61,最终在提交 ed21a58fda54774590da729d1a47e2b0b6f5a3a8 中移动到#81。 我将不得不更多地研究这个合并,以确保数据被正确提取,并且 crossOrigin 在生命周期中保持正确设置,等等。

所有5条评论

我面临同样的问题

我今天也刚收到这个错误。 不知道是什么引起的,因为我没有更新任何东西。
我在stackoverflow上找到了一些答案,但我认为这需要对库进行一些底层更改。 我不确定如何同时修复它。

@Shannor看起来它已经在代码库中了。 我也不知道如何解决这个问题,想知道这是从哪里提供图像而不是这个库本身的问题,因为我正在处理的一个项目间歇性地遇到这个问题。 https://github.com/akfish/node-vibrant/blob/178f6afad09717e22613068a9229fe169b3c3228/src/image/browser.ts#L52

目前我的图像来自 Google Cloud 存储桶。 尽管我认为此时每个人都在使用云托管服务(AWS、Azure 等)。 这可能是影响它的浏览器更改,因为我在其他一些 repos 上看到了这个 bug,它们执行 node-vibrant 所做的或类似的操作。 我会继续留意并将我发现的任何内容与新信息联系起来。

大家好 - 抱歉无线电静默一三秒。 最近为自己做了很多事情。 我距离解决这个问题还有大约两周的时间(并修复其他一些非常严重的错误),但我会讨论一些与crossOrigin相关的东西,我能想到的如果其他人正在调查它,我会尽力提供帮助(我们喜欢 PR 并帮助调查!♥)

有问题的代码添加了#61,最终在提交 ed21a58fda54774590da729d1a47e2b0b6f5a3a8 中移动到#81。 我将不得不更多地研究这个合并,以确保数据被正确提取,并且 crossOrigin 在生命周期中保持正确设置,等等。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

chetstone picture chetstone  ·  14评论

lucafaggianelli picture lucafaggianelli  ·  9评论

nitriques picture nitriques  ·  12评论

eggers picture eggers  ·  3评论

asela-wijesinghe picture asela-wijesinghe  ·  4评论