2009-12-01 122 views
7

我想建立使用C#和光栅绘图应用到目前为止,我一直没能找到任何通用的重量轻2D图形构架,或指南。什么是绘图应用程序的优秀2D图形框架?

我希望你们几个将能够给我一个很好的开端,因为目前我的选择是使用GDI +或WPF,那就是它:(...

基本上我需要一些简单的将为我提供创建Canvas,Layers,Brushes以及导入/导出所有这些东西的功能。我浏览了几个图形应用程序,以了解他们如何实现他们的工具,并在线查看书籍并出来不知道从哪里开始

谢谢, Andrew

+0

我看到你已经更新了这个。你有机会看看SDL.Net吗?您正在寻找其他功能吗?至于你之前提到的闪烁问题,我已经有了最大帧速率模拟可视化,没有黑客让它工作。 – 2009-12-05 05:25:46

回答

5

如果您想制作矢量编辑器或光栅编辑器,您不会提及。我假设光栅。

如果你没有太多的图形API的经验,只是想要得到的东西尽快的工作,只需用GDI + 90。它在概念上比WPF简单得多。

GDI +和WPF都可以做你想做的事。使用WPF可能会提供更好的性能,因为它使用Direct-X进行加速。它也使用了一个存储场景范例,这可能使得很多绘图操作在概念上更简单。虽然,学习曲线比GDI +高得多。

您始终可以使用Open-GL,Direct-X或非托管GDI。它们都具有良好的2D性能。但是你将不得不打电话给非托管代码。

+0

谢谢,我的意思是光栅,相应地更新了我的文章。在这件事上我有一些时间,我在进行研究之前就已经开始研究了。我之前使用过GDI +,为了摆脱它所带来的闪烁和烦恼,我不得不破解它,所以我害怕做出一个图形应用程序的顶部。 – Andrew 2009-12-01 22:13:44

+0

嗯,我想,WPF或非托管GDI是我唯一的两个选择谢谢:) – Andrew 2009-12-08 21:04:10

3

好吧,有两件事。

一个,你可以看看Paint.Net。这是一个用于处理2D图形的免费.Net程序。使用插件模型,您可以更轻松地解决您正在处理的任何问题。

二,良好的2D图形库是SDL.Net。它是C SDL库的一套OO包装,并且使绘制2D图像变得非常简单。不过,我不知道它是否会支持所有更“操纵”的问题。

2

如果你想学习2D图形,WinForms比WPF更容易学习。 WinForms支持画笔,画布,多种图形格式,文件导入/导出等。

Code Project网站有许多WinForms图形教程,请尝试从here开始。

+0

自从这个答案发布以来,我改变了我的观点,现在推荐WPF。 WinForms是一个死胡同。 – 2013-03-18 19:56:50

1

XNA框架很容易使用并且运行良好,因为它实际上只是DirectX的包装。最大的好处是你可以将所有代码写入托管的C#中。在xna论坛上看看this post,看看如何读出显示输出。

1

还有一个Tao框架,它允许您为绘图需要使用OpenGL或SDL。它也是一套围绕每个OO包装。在Google上也有很多教程可以帮助您入门。

Tao Framework

1

Piccolo 2D是Java和C#二维GFX架构。免费,开源。提供场景图等。可缩放。看起来不错。

+0

我在成功的Java项目中使用了Piccolo。自2005年以来,.NET版本尚未更新,因此我正在寻找类似于嵌入WPF应用程序的内容。 – Emile 2015-02-05 08:15:13