我正在寻找一种方法来从控制台应用程序(或NT服务)内生成图形并将其导出到位图。 这是一个后端进程,因此图形从不显示。只是保存到文件。 需要完全线程安全,因为我的控制台将多次并行执行此操作。C#控制台应用程序将图形生成为位图
第三方组件是好的,但免费是更好:d
感谢
我正在寻找一种方法来从控制台应用程序(或NT服务)内生成图形并将其导出到位图。 这是一个后端进程,因此图形从不显示。只是保存到文件。 需要完全线程安全,因为我的控制台将多次并行执行此操作。C#控制台应用程序将图形生成为位图
第三方组件是好的,但免费是更好:d
感谢
MS图表组件 - 免费:
使用Excel互操作程序集。非常适合图表,并且非常易于使用。您还可以对图表进行大量的自定义和修改。
简明教程:
http://www.dotnetperls.com/excel-chart
这是您可能需要的组件文件。
http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel(v=office.11).aspx
一般来说,我们喜欢你试一下,并问这样的问题,当你遇到麻烦。
也就是说,假设你想自己绘制图表(即不使用预先制作的图表来),我得看看Bitmap class和图形类,特别是Graphics.FromImage。位图是图像在内存中的表示,Graphics类为您提供了绘制它的方法。
如果您对GDI +很熟悉,您可以在内存位图上绘制任何想要的内容并将其保存到文件中。只要你没有引用同一个文件或在多个线程中传递相同的源数据引用,你应该没问题。下面是如何在程序上生成位图,你可以在一个控制台应用程序包,Windows服务,网络服务等:
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想到了),但我是一个“自己推出”的编码器。 :)