相关疑难解决方法(0)

使用chrome中的three.js拒绝跨源图像加载

试图THREE.js像这样添加材料

var materialWall = new materialClass( { color: 0xffffff, map: THREE.ImageUtils.loadTexture( 'images/a.png' ) } );
Run Code Online (Sandbox Code Playgroud)

它在Chrome,IE,FF中工作正常,直到3天前,Chrome更新到最新的开发版17.

Chrome 17只是不加载图片并抱怨以下内容

Cross-origin image load denied by Cross-Origin Resource Sharing policy.
Run Code Online (Sandbox Code Playgroud)

这是疯了,因为图像显然在同一个域中,所以这是chrome或THREE.js还是别的问题?

javascript google-chrome cross-domain three.js

20
推荐指数
3
解决办法
4万
查看次数

画布受到跨源数据工作的污染

我正在编写一个脚本(或编辑和黑客的东西)来编辑页面上的图像外观.我知道javascript的基础知识,但这是我第一次看画布.所以忍受我

我收到这个错误:

无法从画布获取图像数据,因为画布已被跨源数据污染.

所以继承我的代码片段抛出错误:

var canvas = document.createElement('canvas'),
            context = canvas.getContext('2d'),
            height = img.naturalHeight || img.offsetHeight || img.height,
            width = img.naturalWidth || img.offsetWidth || img.width,
            imgData;


        canvas.height = height;
        canvas.width = width;
        context.drawImage(img, 0, 0);

        console.log(context);
        try {
            imgData = context.getImageData(0, 0, width, height);
        } catch(e) {}
Run Code Online (Sandbox Code Playgroud)

现在我发现这篇文章:

http://bolsterweb.com/2012/06/grabbing-image-data-external-source-canvas-element/

但我不知道如何使它符合我的需要..

我知道这一切都归功于安全性和所有这一切 - 但是有没有可以解决这一切?

谢谢

编辑

哦等等..错误是因为你不能getImageData ..所以有没有让它'本地'

javascript canvas cors

9
推荐指数
2
解决办法
3万
查看次数