首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SkiaSharp将SVG转换为PNG图像

SkiaSharp将SVG转换为PNG图像
EN

Stack Overflow用户
提问于 2019-06-12 08:44:14
回答 1查看 718关注 0票数 1

当我的方法将SVG代码转换成PNG后,它在正方形内画线。最初它们只是方形的边界线。

代码语言:javascript
复制
private void svgToPng(int itemId)
{
    // Load created svg file
    XmlDocument doc = new XmlDocument();
    doc.Load("...\\lastCreated.svg");

    XmlReader svgSrc = new XmlNodeReader(doc);

    string svgSaveAs = "...\\lastCreated.png";
    var quality = 100;

    var svg = new SkiaSharp.Extended.Svg.SKSvg();
    var pict = svg.Load(svgSrc);

    var dimen = new SkiaSharp.SKSizeI
    (
         (int) Math.Ceiling(pict.CullRect.Width),
         (int) Math.Ceiling(pict.CullRect.Height)
    );
    var matrix = SKMatrix.MakeScale(1, 1);
    var img = SKImage.FromPicture(pict, dimen, matrix);

    // Convert to PNG
    var skdata = img.Encode(SkiaSharp.SKEncodedImageFormat.Png, quality);

    using(var stream = System.IO.File.OpenWrite(svgSaveAs))
    {
         skdata.SaveTo(stream);
    }

    // Upload image
    uploadImage("...\\lastCreated.png", itemId);
}

这是照片

Good:

Bad:

最好的方法是通过进程使用Inkscape。甚至不要尝试使用库,它们都有bug。

EN

回答 1

Stack Overflow用户

发布于 2020-07-01 05:18:38

我会去看看https://github.com/wieslawsoltes/Svg.Skia

这个库要完整得多,并且支持大多数SVG规范。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56558040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档