2016-06-30 6 views
1

私はKonva.jsを使っていくつかのキャンバスアニメーションを行っています。私は、画像の塗りつぶしの形をした円の形をしており、シェイプ(RGBA)にカラーオーバーレイ/フィルターを適用したいと考えています。KonvaJSで画像を塗りつぶした図形にフィルターを適用するにはどうすればよいですか?

var konvaObject = new Konva.Circle({ 
    x: 100, 
    y: 100, 
    radius: 300, 
    stroke: this.color, 
    strokeWidth: 6, 
    fillPatternRepeat: 'no-repeat', 
}); 

// load the image into the shape: 
var imageObj = new Image(); 
imageObj.onload = function() { 
    konvaObject.fillPatternImage(imageObj); 
    konvaObject.draw(); 
} 
imageObj.src = 'www.demo.com/anImageName.png'; 

デモ:http://jsbin.com/winugimeme/edit?js,output

The Docs outline an RGBA filter、しかし限り、私はそれだけでKonva.Imageアイテムに適用することができます言うことができるように

これは私がShapeオブジェクトを作成しています方法です。

形状オブジェクト/塗りつぶし画像にフィルタを適用できるように、上記のコードを再作成する方法はありますか?

答えて

2

フィルタのドキュメントによると、あなたはhttp://konvajs.github.io/api/Konva.Filters.html#RGBA

node.cache(); 
node.filters([Konva.Filters.RGBA]); 
node.blue(120); 
node.green(200); 
node.alpha(0.3); 

注フィルタを適用する前の形状をキャッシュする必要があります。塗りつぶし画像がCORSを有効にする必要があるようjsbinデモは、この例では動作しません(例えば、同じドメインでホストされています) 。

+0

私は上記を試して、前述のCORSエラーが発生しました。 CORSの制限を回避する方法はありますか?私はCDNから画像をロードしています。同じCDNの画像をリンクして画像タグとして読み込むときに、それがなぜCORSの問題であるのかは分かりません。キャンバス上でそれらを操作するとCORSエラーが発生するのはなぜですか? – Prefix

+0

このトリックを試してみると、 "imageObj.crossOrigin =" Anonymous ";" – lavrton

+0

http://jsbin.com/licusaxeqe/2/edit?js,output – lavrton

関連する問題