没有System.Drawing / GDI +的asp.net/c#中的图像处理
时间:2020-03-05 18:40:05 来源:igfitidea点击:
.net是否有其他图像处理库?我更喜欢托管和开放源代码的东西。
我问这个有两个原因:
- 我过去很难用System.Drawing调试GDI +错误
- 我已经读过,不100%支持在asp.net Web应用程序中使用System.Drawing。
谢谢!
编辑:澄清,我知道System.Drawing可以使用我过去使用过的asp.net Web应用程序。我真的只是想知道是否有.net的任何托管图像处理库:)
解决方案
回答
关于(1),大多数难以调试的错误是由于未关闭打开的句柄(托管区域中的Dispose())所致。我很好奇我们听到的位置(2)。
回答
轶事证据1:我已经使用GDI +在ASP.NET中即时创建图像,没有任何问题。我不确定会出现什么问题。
回答
我不知道有任何完全托管的2D图形库是免费的还是开源的(似乎有一些商业可用,但是OSS是可行的方式)。但是,我们可能会研究到开罗的Mono绑定。
开罗是一个独立于平台的2D绘图API。我们可以在开罗主页上找到有关它的更多信息。开罗维基百科页面上也有一些不错的信息。
开罗在开放源代码世界中也得到了广泛的使用,在我看来,它具有强大的功能。 Mozilla,Webkit和Mono都使用它,等等。具有讽刺意味的是,Mono实际上使用它来支持他们的System.Drawing实现...去吧。
也许还有一种方法可以使用Mono的System.Drawing实现作为Microsoft实现的直接替代,尽管我不确定这样做的方式或者方式。我可能首先用Mono的版本替换System.Drawing.dll引用,然后尝试处理任何错误。
回答
我们应该查看.NET 3.0附带的WPF映像库。它们经过了优化和强大(用于运行Aero,因此我们知道它们是有效的)。它们不依赖WPF调度程序,易于扩展,并得到官方的支持。你还能想要什么?