0
時,無法執行「getImageData」由於跨域我們必須託管在谷歌雲圖像,並獲得使用從谷歌雲加載圖像存儲
new GcsAppIdentityServiceUrlSigner().getSignedUrl("GET", path))
它看起來服務器端的鏈接,它像
https://storage.googleapis.com/<bucket>/<folder>/image.JPG?GoogleAccessId=<project>@appspot.gserviceaccount.com&Expires=1400686814&Signature=xPRKGFM01CkV9J4p0kzqMYmLGO1QJkFfoW7EaG%2FYfVcCZIgKCoflCE2E5kHlzG%2FZapjgQrkx%2BBEm%2FGmt2ZbezvW2nNm3KLuJFy%2BuaA%2BO1HNPdTtzuhU9q9yjioUYSA0fb%2BpnOaNHQVmLfLOvjj84l0QIKrCOFsnzfuMUwV7ZuVo%3D
,因爲這在本link描述我們剷鬥配置CORS。
<?xml version="1.0" ?>
<CorsConfig>
<Cors>
<Origins>
<Origin>*</Origin>
</Origins>
<Methods>
<Method>GET</Method>
</Methods>
<ResponseHeaders>
<ResponseHeader>Content-Type</ResponseHeader>
</ResponseHeaders>
</Cors>
</CorsConfig>
gsutil cors set cors.xml gs://<bucket>
然後工作了AssetLoader:
var viewport = $(".viewport"),
renderer = PIXI.autoDetectRenderer(null, null, null, true),
container = new PIXI.DisplayObjectContainer(),
stage = new PIXI.Stage(0xffffff, true);
var imageLink = "...";
var loader = new PIXI.AssetLoader([]);
loader.crossorigin = true;
var texture;
loader.onComplete = function() {
texture = PIXI.Sprite.fromImage(imageLink);
container.addChild(currentTexture);
stage.addChild(container);
viewport.append(renderer.view);
};
loader.load();
但導致錯誤 功能createSpite(){ VAR帆布= $( '')得到(0), ctx2D =畫布。的getContext( 「2D」);
image.onload = function() {
// ...
var imgData = ctx2D.getImageData(minX, minY, imgWidth, imgHeight); // causes an error
// ...
};
image.src = imageLink;
}
錯誤:
Uncaught SecurityError: Failed to execute 'getImageData' on
'CanvasRenderingContext2D': The canvas has been tainted by cross-origin data.