我正在尝试使用C#构建栅格绘图应用程序,但是到目前为止,我还没有找到任何多才多艺的轻量级2D图形框架或指南。
我希望你们中的一些人能够给我一个良好的起点,因为目前我的选择只有使用GDI+或WPF,这就是全部了:(...
基本上,我需要一个简单的东西,可以提供给我创建画布、图层、画笔以及导入/导出所有这些内容的能力。我查看了几个图形应用程序,看看它们如何实现其工具,并在网上寻找书籍,但没有任何关于从哪里开始的知识。
谢谢, 安德鲁
我正在尝试使用C#构建栅格绘图应用程序,但是到目前为止,我还没有找到任何多才多艺的轻量级2D图形框架或指南。
我希望你们中的一些人能够给我一个良好的起点,因为目前我的选择只有使用GDI+或WPF,这就是全部了:(...
基本上,我需要一个简单的东西,可以提供给我创建画布、图层、画笔以及导入/导出所有这些内容的能力。我查看了几个图形应用程序,看看它们如何实现其工具,并在网上寻找书籍,但没有任何关于从哪里开始的知识。
谢谢, 安德鲁
您没有提到您是想做矢量编辑器还是光栅编辑器。我假设是光栅。
如果您没有太多图形API经验,只是想尽快让一些东西工作起来,那就使用GDI+。它在概念上比WPF简单得多。
GDI+和WPF都能做到您想要的。使用WPF可能会提供更好的性能,因为它使用Direct-X进行加速。它还使用了存储场景范例,这可能使得许多绘图操作在概念上更简单。但是,学习曲线比GDI+高得多。
您始终可以使用Open-GL、Direct-X或非托管GDI。它们都具有良好的2D性能。但您将不得不调用非托管代码。
Piccolo 2D 是一个Java和C#的二维图形框架,免费且开源。它提供了场景图等功能,支持缩放,外观美观。
如果你想学习2D图形,WinForms比WPF更容易学习。WinForms支持画笔、画布、多种图形格式、文件导入/导出等。
Code Project网站有许多WinForms图形教程,请从这里开始学起。
XNA框架易于使用且性能良好,因为它实际上只是DirectX的包装器。最大的优势是您可以在托管的C#中编写所有代码。请查看xna论坛上的this post,了解如何读取显示以进行导出。