在C#中将SVG图像从Url转换为PNG

时间:2017-07-05 06:28:46

标签: c# svg

我正在将svg图像转换为png格式。我从网址获取图片。我得到例外Parameter is not valid。以下是我的代码:

string svgFileName = "https://upload.wikimedia.org/wikipedia/commons/e/ed/Chicago_Cubs_Logo.svg";
using (WebClient webClient = new WebClient())
{
    byte[] data = webClient.DownloadData(svgFileName);

    ImageConverter imageConverter = new System.Drawing.ImageConverter();
    Image image = imageConverter.ConvertFrom(data) as Image;
    image.Save("c:\\hello", ImageFormat.Png);                    
}

我收到以下异常:

enter image description here

以下是我的StackTrace:

at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement, Boolean validateImageData)
at System.Drawing.ImageConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)   
at System.ComponentModel.TypeConverter.ConvertFrom(Object value)

我错过了什么?

1 个答案:

答案 0 :(得分:2)

SVG文件不是普通图像,您需要将svg下载为文件而不是图像。

string svgFileName = "https://upload.wikimedia.org/wikipedia/commons/e/ed/Chicago_Cubs_Logo.svg";
using (WebClient webClient = new WebClient())
{
   webClient.DownloadFile(svgFileName, "hello.svg");             
}

下载文件后,您需要将此svg文件转换为图像,为此您可以使用SVG Nuget Gallery

您可以访问此链接进行svg文件转换。 https://stackoverflow.com/a/58912/2745294 https://stackoverflow.com/a/12884409/2745294