我一直在寻找一个简单,小巧但强大且快速(不全面!)的C ++图像库(如果没有C ++版本,C就足够了)。
我正在寻找的主要功能是:
- 免费(开源是一个优势)
- 专为速度而打造
- 没有巨大的功能性膨胀(如
ImageMagik
,这是真正全面的但是是猛犸象)
- 微小的内存占用
- 仅支持绝对最少的功能,如加载/保存,调整大小,格式之间的转换。没什么好看的
- “已损坏”文件的错误恢复(与
stb_image.c
不同,后者的错误恢复非常差)
- MSVC和gcc友好(我使用了
CxImage
多年,但是最新版本我遇到了MSVC 2010的问题,看起来它的积极开发和支持已经消失了,所以我即将放弃它)
- 应支持流行的现代格式,如JPEG2000,直接或通过使用常规库,如
libpng
- 不关心它是DirectX还是OpenGL,因为我不打算用它来显示图像 - 只是为网站进行文件处理
- 支持静态和动态链接是一个加号
- 线程支持是一个巨大的优势
我出于某种原因看了并解雇了图书馆:
- CxImage(暂不再开发)
- ImageMagik - 太大(而且很慢)
- stb_image.c - 错误处理错误,不支持足够的图像格式
- DevIL(还没有被解雇,但也没有看过很多 - 只是在几分钟之前在SO上的类似帖子中了解到它) - 基于它的大小和功能设置它看起来很有希望我需要,但
- FreeImage(和DevIL一样 - 很快会看一下它,但它的尺寸有点大我的口味)
- SOIL(与stb_image.c相同)
- TimThumb - 这是一个PHP,而不是一个C / C ++
简而言之,我只想要尽可能小的东西,尽可能快地以牺牲绝对最低限度的功能为代价,但到目前为止我还没找到合适的候选人。
请问这个社区有什么建议吗?但请记住我上面列出的限制 - 我不认为抛出表格的答案“你试过X吗?” “X”不符合我需要的一半:)
编辑:进一步了解DevIL似乎可能就是我需要的东西。它轻巧,小巧,坚固耐用。现在我只需要确保它执行。
哦,和CImage(我忘了在列表中提到它) - 不喜欢它的性能(虽然我不得不承认只有模板实现的想法很可爱,至少可以说)