我正在寻找一种从控制台应用程序(或 NT 服务)中生成图形并导出到位图的方法。这是一个后端进程,因此图表永远不会显示。刚刚保存到文件。需要完全线程安全,因为我的控制台将并行执行多次。
第三方组件很好,但免费更好:D
谢谢
如果您熟悉 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),但我是一种“自己动手”的编码器。:)
MS 图表组件 - 免费:
使用 excel 互操作程序集。非常适合图表,并且非常易于使用。您还可以对图表进行许多自定义和修改。
简单教程:
http://www.dotnetperls.com/excel-chart
这是您应该需要的程序集文件。
http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel(v=office.11).aspx
一般来说,我们希望您尝试一些事情并在遇到麻烦时提出问题。
也就是说,假设您想自己渲染图表(即不使用预制的图表包),我会看看Bitmap 类和 Graphics 类,特别是Graphics.FromImage。位图是图像的内存表示,Graphics 类为您提供了绘制它的方法。