我正在寻找一种从控制台应用程序(或NT服务)生成图形并导出到位图的方法。 这是一个后端进程,因此图形永远不会显示。刚保存到文件。 需要完全线程安全,因为我的控制台将多次并行执行此操作。
第三方组件很好,但免费更好:D
由于
答案 0 :(得分:1)
MS Charting组件 - 免费:
答案 1 :(得分:1)
如果您熟悉GDI +,您可以在内存位图上绘制任何内容并将其保存到文件中。只要您不引用同一个文件或在多个线程中传递相同的源数据引用,您应该没问题。这是一个简短的示例,说明如何在程序上生成可以包装在控制台应用程序,Windows服务,Web服务等中的位图:
Image bmp = new Bitmap(intWidth, intHeight);
Graphics g = Graphics.FromImage(bmp);
Rectangle r = new Rectangle(0, 0, intWidth, intHeight);
g.DrawEllipse(Pens.Red, g.VisibleClipBounds);
bmp.Save(strFileNameWithPath);
就生成图表而言,它将高度依赖于您的数学技能有多好,源数据的结构方式以及您想要制作的图表类型。肯定有图书馆可以做到这一点(Telerik浮现在脑海中),但我是一个“滚动你自己”的编码器。 :)
答案 2 :(得分:0)
使用excel互操作程序集。适用于图表,非常易于使用。您还可以对图表进行大量自定义和修改。
简单教程:
http://www.dotnetperls.com/excel-chart
这是您需要的程序集文件。
http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel(v=office.11).aspx
答案 3 :(得分:0)
一般情况下,我们更愿意尝试一些问题并在遇到麻烦时提出问题。
那就是说,假设您想自己渲染图表(即不使用预先制作的图表包),我会看一下Bitmap class和Graphics类,特别是{{3} }。位图是图像的内存表示,Graphics类为您提供了绘制它的方法。