1

我正在寻找一种从控制台应用程序(或 NT 服务)中生成图形并导出到位图的方法。这是一个后端进程,因此图表永远不会显示。刚刚保存到文件。需要完全线程安全,因为我的控制台将并行执行多次。

第三方组件很好,但免费更好:D

谢谢

4

4 回答 4

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),但我是一种“自己动手”的编码器。:)

于 2012-05-10T16:34:17.710 回答
1

MS 图表组件 - 免费:

http://archive.msdn.microsoft.com/mschart

于 2012-05-10T16:22:05.437 回答
0

使用 excel 互操作程序集。非常适合图表,并且非常易于使用。您还可以对图表进行许多自定义和修改。

简单教程:

http://www.dotnetperls.com/excel-chart

这是您应该需要的程序集文件。

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel(v=office.11​​).aspx

于 2012-05-10T16:22:28.697 回答
0

一般来说,我们希望您尝试一些事情并在遇到麻烦时提出问题。

也就是说,假设您想自己渲染图表(即不使用预制的图表包),我会看看Bitmap 类和 Graphics 类,特别是Graphics.FromImage。位图是图像的内存表示,Graphics 类为您提供了绘制它的方法。

于 2012-05-10T16:24:32.143 回答