image libraries

This is a little off topic, but I recently downloaded 5 image libraries and I was wondering if some of you who have used them could let me know what you think. I only need ability to load and save images. Looking through them and trying to decide which is best is a pain the arse!!! All are “free” (my highest priority). Anyway, the four (five now) I downloaded are:

Image Format Library - SGI // just added
MS ATL CImage class//another addition

Any advice or comments about which is best, easiest to use, more stable, less buggy, other libraries that are free and work well, etc, would be greatly appreciated.


edit - just found SGI’s IFL, looking good so far, but greatly appreciate any input

edit number 2 - I am now also looking at MS ATL CImage class. So, please give thoughts on that also if any. Thanks. Also, I use VC++7 on Win2000.

[This message has been edited by shinpaughp (edited 03-09-2003).]

I use Devil. That was called OpenIL once, before they told the guy he should not use the “Open” in his name, so he renamed it.

I like that library really a lot. It´s easy to use, has a good documentation and can load nearly every image format.
The only disadvantage is, that he stopped working on it, but that doesn´t bother me.

Hope that helps you.

Thanks. I started looking into devIL and does appear as though it should work well. Basically, I will have default textures within APP but will allow user to import files of various types also.

I don’t know if you use Windows or if you ever use the ilLoadResource functions, but I do have 1 question for you… do you know what strings are accepted as ResourceType or do you see anything else wrong with the code snippet attached? I am trying to use the ilWin32 wrapper class to load a resource bitmap and it loads something, but it is 1 x 1 instead of 640 x 444 as the image is according to the BITMAPINFO struct. It doesn’t error out, it just doesn’t give me the bitmap info I would expect.


if (fileName.IsEmpty())
ilWin32 *ilIntfc = new ilWin32;
devilImage = new ilImage;
ilGenImages(1, &imageName);
ilIntfc->GetResource(*devilImage, AfxGetInstanceHandle(), IDB_BITMAP1, MAKEINTRESOURCE(IDB_BITMAP1));//also tried “Bitmap” and “BITMAP” and filename “image1.bmp”
ilIntfc->GetInfo(*devilImage, &bmpInfo);
delete ilIntfc;

Or if you see something else wrong with what I did, please let me know.