提问人:Mike 提问时间:8/17/2008 最后编辑:Mike 更新时间:12/20/2008 访问量:6798
在没有 System.Drawing/GDI+ 的情况下在 asp.net/c# 中进行图像处理
Image manipulation in asp.net/c# without System.Drawing/GDI+
问:
有没有适用于 .net 的替代图像处理库?我更喜欢托管和开源的东西。
我问这个问题有两个原因:
- 我过去遇到过难以调试的 System.Drawing GDI+ 错误
- 我读到在 Web 应用程序中使用 System.Drawing 不是 100% 支持的 asp.net。
谢谢!
编辑:澄清一下,我知道 System.Drawing 可以 asp.net Web 应用程序工作 - 我过去使用过它。我真的只是想知道是否有任何适用于 .net :) 的托管图像处理库
答:
关于(1),大多数难以调试的错误是由于没有关闭打开的句柄(托管土地中的Dispose())。我很好奇你从哪里听说的(2)。
评论
轶事证据 #1:我在 ASP.NET 内使用 GDI+ 进行即时图像创建,没有任何问题。我不确定问题会是什么。
评论
我不知道有任何完全托管的 2D 绘图库是免费的或开源的(似乎有一些商业上可用的,但 OSS 是要走的路)。但是,您可以查看 Mono 与 Cairo 的绑定。
Cairo 是一个独立于平台的 2D 绘图 API。您可以在开罗主页上找到有关它的更多信息。开罗维基百科页面也有一些很好的信息。
Cairo 在开源世界中也被广泛使用,这在我看来说明了它的健壮性。Mozilla、Webkit 和 Mono 都使用它。具有讽刺意味的是,Mono 实际上用它来支持他们的 System.Drawing 实现......去想想。
可能还有一种方法可以使用Mono的System.Drawing实现作为Microsoft实现的直接替代品,尽管我不确定如何或是否有效。我可能会首先将System.Drawing.dll引用替换为Mono的版本,然后尝试处理任何错误。
评论
应查看 .NET 3.0 附带的 WPF 映像库。它们经过优化且健壮(用于运行 Aero,因此您知道它们很高效)。它们不依赖于 WPF 调度程序,易于扩展,并得到官方支持。你还想要什么?
评论
上一个:GridView 删除不起作用
下一个:移动设备被检测为非移动设备
评论