微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 我可以使用SkiaSharp将SVG渲染到PNG吗?

我正在尝试使用SkiaSharp将SVG文件转换为PNG.我知道有很多选择,但我想评估它的SVG负载支持.

这可能吗?我试过这个:

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

但我只是得到一个空图像.

解决方法

是的,它可以.上面的代码适用于SkiaSharp附带的测试SVG. https://github.com/mono/SkiaSharp/blob/8ca298b448810cf65ab13cd7b2de94c627a033c1/tests/Content/images/logos.svg.

我的SVG可能不受支持.如果我想进一步调查,我会发布不同的问题.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐