C#Chart to base64 PNG

时间:2017-06-21 09:40:17

标签: c# asp.net-mvc xslt charts

在MVC Web应用程序中,我需要能够使用C#中的数据创建图表,并将其转换为PNG的bas64表示,以传递给某些XSLT并包含在PDF中。

我尝试过使用: System.Web.Helpers.Chart - 这是有效的,但是有限,而且质量不高。我不能让它看起来像我喜欢的那样。

OxyPlot - 看起来更有希望,但我无法在Web应用程序中转换为PNG,只能在WPF或Win Forms中导出。

HighCharts - 无法使用像PhantomJS那样的东西渲染到PNG。

我可以使用图表库来实现这个目标吗?

1 个答案:

答案 0 :(得分:1)

我已经使用了这个System.Web.UI.DataVisualization.Charting Link

您可以将此System.Web.UI.DataVisualization添加为项目中的参考。要将图表转换为base64图像,您可以使用它。

private string GetChartBase64Image(Chart chart)
{
    using (MemoryStream memStream = new MemoryStream())
    {
        chart.SaveImage(memStream, ChartImageFormat.Png);
        byte[] imageArray = memStream.ToArray();

        return Convert.ToBase64String(imageArray);
    }
}

在示例上方,类图表和ChartImageFormat在名称空间System.Web.UI.DataVisualization.Charting

中定义