c# - 将 SVG 转换为 PNG 或 JPEG

标签 c# image svg

目前有哪些方法可以使用 C# 以编程方式将 SVG 图像转换为 PNG 或 JPEG?

我已经阅读了关于该主题的所有现有 SO 问题,并且所有这些问题都涉及使用外部进程启动第三方程序。就我而言,这不是一个选项,因为我们很快就会迁移到 Azure。

我需要做的是从磁盘加载 SVG 文件,并理想地将其转换为我可以使用 System.Drawing 类进行操作的文件。

有什么想法吗?

最佳答案

嗯。我将分享我的解决方案,以呈现调整为适当大小的 SVG 文件。

我安装了这个 nuget 包

Install-Package Svg

你可以在github上找到包源代码here

然后,你可以这样做:

var svgDocument = SvgDocument.Open(path);
using (var smallBitmap = svgDocument.Draw())
{
    var width = smallBitmap.Width;
    var height = smallBitmap.Height;
    if (width != 2000)// I resize my bitmap
    {
        width = 2000;
        height = 2000/smallBitmap.Width*height;
    }

    using (var bitmap = svgDocument.Draw(width, height))//I render again
    {
        bitmap.Save(pngPath, ImageFormat.Png);
    }
}

尽情享受吧!

关于c# - 将 SVG 转换为 PNG 或 JPEG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6254422/

相关文章:

C# 如何在多个列表框中显示项目?

c# - 使用 Lambda 属性 - 编译器

c# - 计算具有字符串属性的类的哈希码的最佳方法是什么?

python - 如何从cv2 python中的蒙版裁剪区域

php - 将图片上传到服务器并将图片路径存储在mysql数据库中

windows - 如何为动画 GIF 加水印并将 2 个 ImageMagick 命令组合在一起?

javascript - 检测到 Canvas 元素在 Canvas 边界之外

c# - 检查是否按下了 PAGEUP 或 PAGEDOWN

css - svg, Canvas 在一起而不使用绝对位置

javascript - HTML 中的 SVG 文件