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);
}
}
但我只是得到一个空的图像。
告诉我们什么** image.svg **看起来像 – MickyD
...另外,当调试时,'svg.CanvasSize.Width'和'svg.CanvasSize.Height'的值是什么? – MickyD
啊,好问题。在我急匆匆的时候,我没有想过要测试知名的文件。我刚刚根据https://github.com/mono/SkiaSharp/blob/8ca298b448810cf65ab13cd7b2de94c627a033c1/tests/Content/images/logos.svg进行了测试。它呈现良好。所以代码是好的。也许过滤器不受支持。 – t9mike