使用SVG渲染引擎将svg转换为png时出现异常

时间:2015-01-27 14:27:39

标签: javascript c# svg

我正在尝试使用c#将svg转换为png nin我的asp.net应用程序。我从here得到了一些帮助。我听从了Anish的建议。但我对此感到异常。我不知道这个。我的代码包括:

            string path = "d:\\";
            string svgstr = temp.Value;
            var byteArray = Encoding.ASCII.GetBytes(svgstr);
            var stream = new MemoryStream(byteArray);
            var bitmap = SvgDocument.Open(stream).Draw();
            bitmap.Save(path, ImageFormat.Png);

我对此有以下异常:

Object reference not set to an instance of an object.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error: 


Line 102:            var stream = new MemoryStream(byteArray);
Line 103:            
Line 104:            var bitmap = SvgDocument.Open(stream).Draw();
Line 105:             
Line 106:                bitmap.Save(path, ImageFormat.Png);

Source File: e:\HighchartDemo\HighchartDemo\ColumnChart.aspx.cs    Line: 104 

我真的需要帮助。任何其他替代方式也会有所帮助。全部谢谢

2 个答案:

答案 0 :(得分:0)

你也可以在js中做,highcharts接受两种数据格式JSON和SVG。您需要将导出的highchart js引用添加到您的应用程序并在js中执行。

以下是概述http://www.highcharts.com/docs/export-module/export-module-overview

的链接

我必须在回答中添加这个,因为我需要50个回购评论,我是新的堆栈溢出。

答案 1 :(得分:0)

您收到的异常没有发生在转换上,但是您尝试创建流时会出现一个空指针异常。

var stream = new MemoryStream(byteArray);

你的变量为null,然后你尝试从SvgDocument中绘制一个位图,它使你的流为null。

您需要检查MemoryStream为null / byteArray无效的原因