What is TinyImageLoader?

EDIT REGARDING STB_IMAGE

What does TIL support?

What can you do with TIL?



til::Image* load = til::TIL_Load("texture.png", TIL_FILE_ADDWORKINGDIR | TIL_DEPTH_R5G6B5);

How would I use TIL to load a texture?



// Initialize TinyImageLoader



til::TIL_Init();



// [ more code here ]



// Load an image

// Note: OpenGL reverses the pixel components

// TIL_DEPTH_A8B8G8R8 = GL_RGBA



til::Image* load = til::TIL_Load("media\\PNG\\avatar.png", TIL_FILE_ADDWORKINGDIR | TIL_DEPTH_A8B8G8R8);



// Load the pixel data into the texture



glEnable(GL_TEXTURE_2D);

glGenTextures(1, &g_Texture);

glBindTexture(GL_TEXTURE_2D, g_Texture);

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);

glTexImage2D(

GL_TEXTURE_2D, 0, GL_RGBA,

load->GetWidth(), load->GetHeight(),

0,

GL_RGBA, GL_UNSIGNED_BYTE, load->GetPixels()

);

glBindTexture(GL_TEXTURE_2D, 0);</pre>

How well documented is TIL?

I want to use TIL in my commercial project. Is that allowed?

I found an image that doesn't load correctly. What should I do?

Changes in 1.6.0

Fixed all memory leaks.

Added documentation

Added DDS loader (DXT1 and DXT5 support)

Added FileStream abstraction (check the zip loading example)

Added detailed tutorial

Fixed tons of bugs

Changes in 1.6.1



Framework project pointing to wrong GLEW library (glew32_x86.lib instead of the standard glew32.lib) Missing third-party libraries page in the documentation

Changes in 1.6.2



Fixed a serious heap corruption bug caused by til::TIL_AddDebug Fixed a serious heap corruption bug caused by til::TIL_AddError Fixed memory leak in til::FileStreamStd - path string was not deleted Fixed memory leak in til::TIL_Load - FileStream handle was not deleted Fixed bug in til::TIL_Load - FileStream was being closed twice Fixed memory leaks in til::ImageICO

Changes in 1.6.3



Added til::TIL_Release function, which releases a handle Added TIL_TARGET_DEVEL target for developers Removed unnecessary includes (e.g. windows.h, stdlib.h, etc.) Fixed a bug where til::TIL_ShutDown could cause a crash by deleting an uninitialized variable



TinyImageLoader (TIL) is an image loading library written in C++. It started because I wanted to load images on Windows Mobile. So I downloaded the FreeImage source and started to include it in my project. Then I noticed it was over 2 MB of static libraries! On a platform that has only 64 to spare! I started to look at alternatives. DevIL didn't work either. Finally, I stumbled on stb_image.c.I was intrigued. What if I rewrote stb_image.c to not only look better, but support more image formats as well?From that followed TinyImageLoader. In its most optimized form, TIL is a mere 116 kB.: Mr. Barrett noted below that I did not credit him for his work. An oversight on my part! I have since corrected this. The SVN version of TILImagePNG.cpp has a credit section for his work on stb_image.c and will be included in future versions of TinyImageLoader.TIL supports: PNG, BMP, GIF, ICO and TGA. It also supports APNG (animated PNG) and animated GIF.All you can do is load images and convert them to the correct color depth. For example, if you're working on Windows Mobile, you will be using 16-bit color. You would load images like this:You can load a texture like so:This example can be found in the examples solution provided with TinyImageLoader.As of version 1.6.0, TinyImageLoader is fully documented. The documentation can be found in the docs folder in the SDK folder. An example of an image viewer using OpenGL is provided.TinyImageLoader is free software licensed under the MIT license. This means you can do whatever you want with the code (redistribute, change, use) as long as you attribute the project owner.E-mail me at knight666 (at) gmail (dot) com with the code you were using to load the image and the offending image. You can also try fixing it yourself, using the latest source found on the SVN. If you have fixed it, let me know! I will review your patch and hopefully include it in the next release.Project home: http://code.google.c...inyimageloader/ Stable release: http://code.google.com/p/tinyimageloader/downloads/detail?name=TinyImageLoader%201.6.3.zip