没有System.Drawing / GDI +的asp.net/c#中的图像处理

时间:2008-08-16 19:42:43

标签: asp.net system.drawing

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

我问这个是因为两个原因:

  1. 我在过去使用System.Drawing时遇到很难调试GDI +错误
  2. 我已经读过在asp.net Web应用程序中使用System.Drawing不是100%支持。
  3. 谢谢!

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

4 个答案:

答案 0 :(得分:4)

你应该研究the WPF Imaging libraries shipped with .NET 3.0。它们经过优化和强大(用于运行Aero,因此您知道它们非常有效)。它们不依赖于WPF调度程序,易于扩展和官方支持。你还想要什么?

答案 1 :(得分:2)

我不知道任何完全管理的2D绘图库是免费的还是开源的(似乎有一些商用,但OSS是要走的路)。但是,您可以查看the Mono bindings to Cairo

Cairo是一个独立于平台的2D绘图API。您可以在the Cairo homepage找到有关它的更多信息。 Cairo Wikipedia page也有一些很好的信息。

开罗在开源世界中也得到了相当广泛的应用,我对它的稳健性有所了解。 Mozilla,Webkit和Mono都使用它等等。具有讽刺意味的是,Mono实际上使用它来支持他们的System.Drawing实现......去图。

也许有一种方法可以使用Mono的System.Drawing实现作为Microsoft实现的替代品,但我不确定如何或者是否可行。我可能会首先用Mono的版本替换System.Drawing.dll引用,然后尝试处理任何错误。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

关于(1),大多数难以调试的错误是由于没有关闭打开的句柄(在托管土地中的Dispose())。我很好奇你听到的地方(2)。