.net 有替代图像处理库吗?我更喜欢托管和开源的东西。

我问这个有两个原因:

  1. 我过去遇到过使用 System.Drawing 调试 GDI+ 错误的困难
  2. 我读到,在 ASP.NET Web 应用程序中使用 System.Drawing 并不是 100% 支持的。

谢谢!

编辑:澄清一下,我知道 System.Drawing 可以运行 ASP.NET Web 应用程序 - 我过去曾使用过它。我真的只是想知道 .net 是否有任何托管图像处理库:)

有帮助吗?

解决方案

我不知道有任何免费或开源的完全托管的 2D 绘图库(似乎有一些商业可用,但 OSS 是最佳选择)。但是,您可能会考虑 Mono 与 Cairo 的绑定.

Cairo 是一个独立于平台的 2D 绘图 API。您可以在以下位置找到更多相关信息: 开罗主页. 。这 开罗维基百科页面 还有一些很好的信息。

Cairo 在开源世界中也得到相当广泛的使用,对我来说这说明了它的稳健性。Mozilla、Webkit 和 Mono 等都使用它。讽刺的是,Mono 实际上用它来支持他们的 System.Drawing 实现......去搞清楚。

可能还有一种方法可以使用 Mono 的 System.Drawing 实现作为 Microsoft 实现的直接替代品,尽管我不确定它如何工作或是否有效。我可能会首先用 Mono 的版本替换 System.Drawing.dll 引用,然后尝试处理任何错误。

其他提示

你应该调查一下 .NET 3.0 附带的 WPF 成像库. 。它们经过优化且稳健(用于运行 Aero,因此您知道它们非常高效)。它们不依赖于 WPF 调度程序,易于扩展,并且受到官方支持。你还能想要什么?

轶事证据#1:我在 ASP.NET 中使用 GDI+ 进行动态图像创建,没有出现任何问题。我不确定会出现什么问题。

对于 (1),大多数难以调试的错误是由于未关闭打开的句柄(托管区域中的 Dispose())造成的。我很好奇你从哪里听说的(2)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top