C# .svg 文件到 System.Drawing.Image

Vul*_*sin 6 .net c# svg png

我需要将选定的 .svg 文件转换为 System.Drawing.Image 对象,以便我可以调整它的大小并将其另存为 .png。谁能帮我这个?

这是我到目前为止所拥有的:

Svg.SvgDocument svgDocument = SVGParser.GetSvgDocument(mPath);
image = svgDocument.Draw();
Run Code Online (Sandbox Code Playgroud)

但它给了我内存不足的错误。

Ter*_*hos 5

您可以使用SVG Rendering Engine Lib,使用它绘制图像非常容易:

var svgDoc = SvgDocument.Open(imagePath);

using(var Image = new Bitmap(svgDoc.Draw()))
{
    Image.Save(context.Response.OutputStream, ImageFormat.Png);
    context.Response.ContentType = "image/png";
    context.Response.Cache.SetCacheability(HttpCacheability.Public);
    context.Response.Cache.SetExpires(DateTime.Now.AddMonths(1));
}
Run Code Online (Sandbox Code Playgroud)

在此示例中,我使用处理程序在浏览器上显示图像,但您只需更改 Save 方法的第一个参数即可轻松将其保存在某个文件夹中。


Mil*_*vic -4

所以,

SVGParser.MaximumSize = new System.Drawing.Size(4000, 4000);
svgDocument = SVGParser.GetSvgDocument(mPath);
var bitmap = svgDocument.Draw();
image = bitmap;
Run Code Online (Sandbox Code Playgroud)

  • 您应该在示例中放置一个指向您正在使用的库的链接,因为没有它,答案就毫无用处 (32认同)
  • 他使用了一个名为 svg 的包。要安装它,只需在包管理器中运行以下命令:Install-Package Svg (2认同)