0

我正在为 wix.com 开发代表用户图像滑块的应用程序。最近我的任务是为这个项目制作像 instagram 一样的图像过滤器,第一个想法是为此目的使用画布,特别是 CamanJS。正如您从问题标题中理解的那样,我陷入了画布跨域问题。

我尝试使用 svgjs 及其过滤器,在 localhost 上它非常适合远程图像,但它不适用于 wix(也许它不适用于我们项目编写的角度)

我也试过http://crossorigin.me/,将它添加到每个图像链接中,但似乎什么也没发生,CamanJS 就像没有这个代理一样破坏图像。

不要误会我的意思,我已经测试了 4 个不同的 js 库,每个人都建立在画布操作之上。

那么有没有另一种方法可以绕过这个问题呢?我听说过 php 代理,但我在 webdev 方面有一点经验(大约 4 个月),所以我不知道如何使用它。

4

1 回答 1

0

无论使用哪个库,您都无法避免它,因为它是浏览器功能/机制。

正如您所说,您可以使用代理(例如您提到的代理,但要小心那些)。但是,仅使用代理是不够的。您还必须请求跨域使用,您可以通过在设置其源之前将此属性添加到图像元素来做到这一点:

var img = new Image;
img.onload = function() {...};    // your callback here
img.crossOrigin = "anonymous";    // make request to use image cross-origin
img.src = "url/to/proxy";         // send request/start loading

或者,如果您有图像标签:

<img crossOrigin="anonymous" src="...">

请记住,如果请求的服务器拒绝,则可能根本不会加载图像。

或者,查看与确实允许跨域使用的网站(例如imgur.com(我不隶属))的商业协议。

于 2016-04-28T00:07:22.557 回答