轻量级C ++图像库

我一直在寻找一个简单而小巧但又强大且快速( 全面!)的C ++图像库(如果没有C ++版本,C就足够了)。

我正在寻找的主要function是:

  • 免费(开源是一个加号)
  • 专为速度而设计
  • 没有巨大的function膨胀(像ImageMagik ,这是真正全面但是是猛犸象)
  • 微小的内存占用
  • 仅支持绝对最小的function,如加载/保存,resize,格式之间的转换。 没有什么花哨
  • “损坏”文件的错误恢复(与stb_image.c不同,后者的错误恢复非常差)
  • MSVC和gcc友好(我使用CxImage多年,但最新版本我遇到了MSVC 2010的问题,看起来它的积极开发和支持已经消失了,所以我即将放弃它)
  • 应该支持流行的现代格式,如JPEG2000,直接或通过使用像libpng这样的通用库
  • 不关心它是DirectX还是OpenGL,因为我不打算用它来显示图像 – 只是为网站进行文件处理
  • 支持静态和动态链接是一个优点
  • 线程支持是一个巨大的优势

由于某种原因,我查看和解雇的图书馆:

  • CxImage(不再有活跃的开发)
  • ImageMagik – 太大(而且很慢)
  • stb_image.c – error handling错误,不支持足够的图像格式
  • DevIL(还没有被解雇,但也没有看过很多 – 只是在几分钟之前在SO上的类似post中了解到它) – 基于它的大小和function设置它看起来非常有希望我需要的东西
  • FreeImage(和DevIL一样 – 很快就会看一下它,但它的尺寸有点大我的口味)
  • SOIL(与stb_image.c相同)
  • TimThumb – 它是一个PHP,而不是一个C / C ++

简而言之,我只是希望尽可能小的东西尽可能快地牺牲仅仅具有绝对最小的function但我到目前为止还没找到合适的候选者。

请问这个社区有什么建议吗? 但请记住我上面列出的限制 – 我不认为抛出表格的答案“你试过X吗?” “X”不符合我需要的一半:)

编辑 :进一步了解DevIL似乎可能是我需要的东西。 它轻巧,小巧,坚固耐用。 现在我只需要确保它执行。 哦,和CImage(我忘了在列表中提到它) – 不喜欢它的性能(虽然我不得不承认只有模板实现的想法很可爱,至少可以说)

我强烈建议你围绕libpng和jpeglib (以及你需要支持的格式的所有其他低级库)编写一个小库。 它并不难,您可以编写所需的所有function。

作为替代方案,您可以使用已存在的一些优秀的c ++包装器。 这里有些例子:

  • PNG ++
  • JPEGReader / JPEGWriter

看看CImg库,它只是一个单独的头文件