寻找托管图像解析器库(JPEG,BMP,PNG,GIF)

时间:2010-06-16 09:54:41

标签: .net image image-processing jpeg server-side

我正在编写一个讨论区软件,它将为用户提供“头像”图像。我想调整上传到合理大小的任何图片的大小。我可以轻松地使用System.Drawing做到这一点,但这依赖于之前存在帽子安全问题的GDI +。问题是图像不受信任。所以我想使用一个完全托管的lib来解决这个问题,因为托管代码无法逃脱沙箱(当然它可以,但只有代码是用户提供的,而不是我的情况)。 那么有人知道JPEG,BMP,PNG和GIF的托管图像解析器库吗?如果缺少某种格式,我将不得不忍受这种格式。

编辑:Paint.NET也依赖于GDI +。

您可能也对下面的讨论感兴趣。

4 个答案:

答案 0 :(得分:3)

VintaSoftImaging.NET怎么样?它是一个完全托管的.NET库,可以调整大小/重新采样各种图像格式(以及更多)。

所有图像库都具有非托管代码的情况肯定不是 - 图像解码器是用作者写入的任何语言编写的。有些人确实喜欢用托管语言编写它们;例如,还有LibTiff.NET和LibJpeg.NET,它们都是100%托管代码。这些是严格的编解码库,但不会进行任何调整大小。

答案 1 :(得分:3)

沙盒图像处理的适当方式 是在没有权限和磁盘访问权限的单独进程中运行ImageMagickconvert


缺少用于图像解析的托管代码是因为图像解析通常对性能敏感。 Dave Huang's answer概述了一些托管库 - 大概它们很慢。有一些例子,例如编译libjpeg to Flash(他们说这很快,但这只能反映出他们设定期望的程度有多低;))使用他们的Alchemy,你也许可以为.NET做同样的事情。

答案 2 :(得分:1)

嗯,你更喜欢什么?你想使用一个已被数十亿次黑客攻击测试的图书馆,发现想要但已经修补了吗?或者你更喜欢一些没有暴露于这种攻击的模糊图书馆?爱好。

默默无闻中没有安全保障。

答案 3 :(得分:1)

为什么不回避整个问题,并使用Gravatar作为头像?

相关问题