2016-11-19 64 views
2

我正在玩新版本的SkiaSharp(1.55),它支持在Xamarin.Android(而不僅僅是)上加載SVG。由於它是在不到10天前發佈的,我無法找到這麼多的文檔。我想將它着色(將前景填充顏色從黑色改變爲我需要的任何顏色)。這就是我正在做的。如何爲使用SkiaSharp加載的黑色和白色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); 
} 

由於混合模式的結果,你可以做很多這個,甚至顛倒顏色。

相關問題