C# .svg file to System.Drawing.Image
本文关键字:Drawing Image System to svg file | 更新日期: 2023-09-27 18:35:26
我需要将选定的.svg文件转换为System.Drawing.Image对象,以便我可以调整其大小并将其另存为.png。谁能帮我解决这个问题?
这是我到目前为止所拥有的:
Svg.SvgDocument svgDocument = SVGParser.GetSvgDocument(mPath);
image = svgDocument.Draw();
但它给了我内存不足错误。
您可以使用 SVG 渲染引擎库:
Install-Package Svg
使用它很容易绘制图像:
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));
}
在此示例中,我使用处理程序在浏览器上显示图像,但只需更改 Save 方法的第一个参数即可轻松地将其保存在某个文件夹中。
Miljan Vulovic 使用的资源是 svg (https://archive.codeplex.com/?p=svg)。
链接仅在 2021 年 7 月之前有效,届时可能会在 GitHub 上提供,但我不确定。
无论如何,他的解决方案对我有用。
所以,
SVGParser.MaximumSize = new System.Drawing.Size(4000, 4000);
svgDocument = SVGParser.GetSvgDocument(mPath);
var bitmap = svgDocument.Draw();
image = bitmap;