使用Microsoft .NET图表控件库生成图像,无需控制
是否可以使用Microsoft Chart Controls库生成图像(jpeg,png等)而无需实例化WinForm或ASP.NET Control类? 我见过的所有例子都使用了控制组件。 我需要创建一个包含简单方法的库,这些方法可以绘制数据并返回一个新的图表图像。 例子:
public byte[] GeneratePlot(IList series) { // generate and return JPEG } public void GeneratePlot(IList series, Stream outputStream) { // generate JPEG and write to stream }
如果不可能:
- 你会建议每次用户调用GeneratePlot()方法时创建/处理新的图表控件吗?
- 你会推荐另一个.NET库(最好是免费的)吗?
谢谢
是的,这是可能的:
using System.Windows.Forms.DataVisualization.Charting; using System.IO; ... public void GeneratePlot(IList series, Stream outputStream) { using (var ch = new Chart()) { ch.ChartAreas.Add(new ChartArea()); var s = new Series(); foreach (var pnt in series) s.Points.Add(pnt); ch.Series.Add(s); ch.SaveImage(outputStream, ChartImageFormat.Jpeg); } }
如果你想要的只是图表图像。 然后,您可以使用图表控件保存到磁盘。
myChart.SaveImage("C:\mypic.png", System.Drawing.Imaging.ImageFormat.Png)
然后从磁盘加载该映像。 如果图表仅生成一次,那么您也可以先检查文件系统中的图像,然后仅在不存在的情况下重新呈现它。
希望这可以帮助。
- ‘Data.TimeLineChartedDay ‘类型的对象无法转换为’Data.TimeLineChartedDay ‘类型?
- ASP.NET MVC 3.0的学习资料? 请列出!
- WPF中的Dispatcher to Thread关系
- ListBox项目可以跨多行吗? C#
- 将代码注入到没有自定义属性的所有方法和属性的最简单方法
- C#垃圾收集器似乎太早关闭了我的StreamWriter
- Master-Detail使用Razor,ASP.NET MVC 3和.NET 4.0创建视图
- 在C#中获取WinCE上的设备CPU利用率和空闲RAM
- Windows 10 IOT生命周期(或:如何属性终止后台应用程序)