2016-11-19 7 views
2

Xamarin.Android(およびそれだけでなく)上のSVGの読み込みをサポートするSkiaSharp(1.55)の新しいリリースで遊んでいます。 10日以内にリリースされたという事実のため、私はあまり多くのドキュメントを見つけることができませんでした。SkiaSharpで読み込まれた白黒SVGをカラーリングする方法は?

SVGを白黒で読み込んだ後、色をつけたい(前景の塗りつぶしの色を黒から必要な色に変更する)。これは私がやっていることです。

using (var paint = new SKPaint()) 
{ 
    paint.ColorFilter = SKColorFilter.CreateLighting(SKColors.White, SKColor.Parse("#FF0000")); 
} 

上記のコードは正常に動作しますが、私は正しいフィルタを使用していないと感じています。

  1. 「カラー化」機能のフィルタはありますか?
  2. 背景ピクセルの代わりに同じ方法を実現する方法はありますか?
  3. どのような簡単な方法で色を反転できますか?

詳細な説明を歓迎します。

答えて

2

私は(あなたが色を変えているので)、カラーフィルタが正しいフィルタであると思いますが、あなたはまた、代わりに、照明のブレンドモードを使用して試すことができます:

using (var paint = new SKPaint()) { 
    paint.ColorFilter = SKColorFilter.CreateBlendMode(
     SKColors.Red,  // the color, also `(SKColor)0xFFFF0000` is valid 
     SKBlendMode.SrcIn); // use the source color 

    canvas.DrawPicture(svgPicture, paint); 
} 

ブレンドモードの結果として、あなたは色を反転させても、これを全部やり遂げることができます。

関連する問題