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)
...
我面临同样的问题
我今天也刚收到这个错误。 不知道是什么引起的,因为我没有更新任何东西。
我在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 在生命周期中保持正确设置,等等。
最有用的评论
大家好 - 抱歉无线电静默一三秒。 最近为自己做了很多事情。 我距离解决这个问题还有大约两周的时间(并修复其他一些非常严重的错误),但我会讨论一些与
crossOrigin
相关的东西,我能想到的如果其他人正在调查它,我会尽力提供帮助(我们喜欢 PR 并帮助调查!♥)有问题的代码添加了#61,最终在提交 ed21a58fda54774590da729d1a47e2b0b6f5a3a8 中移动到#81。 我将不得不更多地研究这个合并,以确保数据被正确提取,并且 crossOrigin 在生命周期中保持正确设置,等等。