2017-02-12 95 views
2

我正在嘗試使用SkiaSharp將SVG文件轉換爲PNG。我知道有很多選擇,但我想評估它的SVG加載支持。可以使用SkiaSharp渲染SVG到PNG嗎?

這可能嗎?我試過這個:

var svg = new SKSvg(new SKSize(200, 200)); 
svg.Load("image.svg"); 

var bitmap = new SKBitmap((int)svg.CanvasSize.Width, (int)svg.CanvasSize.Height); 
var canvas = new SKCanvas(bitmap); 
canvas.DrawPicture(svg.Picture); 
canvas.Flush(); 
canvas.Save(); 

using (var image = SKImage.FromBitmap(bitmap)) 
using (var data = image.Encode(SKImageEncodeFormat.Png, 80)) 
{ 
    // save the data to a stream 
    using (var stream = File.OpenWrite("image.png")) 
    { 
     data.SaveTo(stream); 
    } 
} 

但我只是得到一個空的圖像。

+0

告訴我們什麼** image.svg **看起來像 – MickyD

+0

...另外,當調試時,'svg.CanvasSize.Width'和'svg.CanvasSize.Height'的值是什麼? – MickyD

+0

啊,好問題。在我急匆匆的時候,我沒有想過要測試知名的文件。我剛剛根據https://github.com/mono/SkiaSharp/blob/8ca298b448810cf65ab13cd7b2de94c627a033c1/tests/Content/images/logos.svg進行了測試。它呈現良好。所以代碼是好的。也許過濾器不受支持。 – t9mike

回答