轻量级C++图像库

YeP*_*IcK 26 c c++ performance open-source image

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

我正在寻找的主要功能是:

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

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

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

简而言之,我只想要尽可能小的东西,尽可能快地以牺牲绝对最小的功能为代价,但到目前为止我还没找到合适的候选者.

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

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

Gig*_*igi 11

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

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


qeh*_*hgt 10

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

  • **很确定?任何人都可以确认或否认这个吗?我正在考虑在我的项目中使用它. (7认同)
  • @Octopus检查回复,因为回复你的人没有正确地突出你.我知道它已经有5年了,你可能没有答案,但你所说的是对图书馆的一个非常严肃的主张,因为人们 - 像我一样 - 非常强烈反对使用"段错误"的图书馆. (2认同)