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

SkiaSharp:如何绘制到.net图形

如何解决SkiaSharp:如何绘制到.net图形

我需要读取SVG文件并将其呈现到.net Windows Form应用程序中的屏幕上。 我发现SkiaSharp程序集能够处理SVG文件,但是我没有发现SkiSharp类与Windows世界之间的关系。

如何将SkiaSharp对象(SKPicture,SKCanvas或其他合适的对象)呈现给.net Forms Graphics对象,或者更好地呈现给System.Drawing.Image?

如果这不可能,我应该渲染成PNG文件并读回吗?还是有另一个更合适的组件可以满足我的要求?

解决方法

现在我找到了一种方法:

SkiaSharp.Extended.Svg.SKSvg svg = new SkiaSharp.Extended.Svg.SKSvg();
svg.Load("Graphics.svg");
SKBitmap bitmap = new SKBitmap(100,100); // 100x100 target size
var canvas = new SKCanvas(bitmap);
canvas.DrawPicture(svg.Picture);
using (var stream = new MemoryStream())
{
    bitmap.Encode(stream,SKEncodedImageFormat.Png,100);
    stream.Seek(0,SeekOrigin.Begin);
    var image = Image.FromStream(stream);
}

然后我将其显示在图像中并将其绘制到屏幕上。

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