簡體   English   中英

如何着色裝載SkiaSharp的黑白SVG?

[英]How to colorize black and white SVG loaded with SkiaSharp?

我正在玩新版本的SkiaSharp(1.55),它支持在Xamarin.Android(而不僅僅是)上加載SVG。 由於它是在不到10天前發布的事實,我找不到這么多文檔。

加載黑白SVG后,我想將它着色(將前景填充顏色從黑色改為我需要的任何顏色)。 這就是我正在做的事情。

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

上面的代碼工作正常,但我的印象是我沒有使用正確的過濾器。

  1. 是否有任何具有“着色”功能的過濾器?
  2. 如何實現相同的背景像素呢?
  3. 任何簡單的方法來反轉顏色?

歡迎詳細解釋。

我認為濾色鏡是正確的濾鏡(因為你正在改變顏色),但你也可以嘗試使用混合模式而不是光照:

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);
}

作為混合模式的結果,您可以做很多這樣的事情,甚至可以反轉顏色。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM