Imago is a simple C library for reading and writing images in many different image file formats.
Currently supported file formats:
Copyright (C) 2010-2019 John Tsiombikas <email@example.com>
You may freely use, modify and/or redistribute libimago, under the terms of the GNU Lesser General Public License (LGPL) version 3 (or at your option, any later version published by the Free Software Foundation). See COPYING and COPYING.LESSER for details.
Latest release: libimago 2.2 Grab the latest source code from github
Check out the example program under
test/, and the heavily
imago2.h header file, to find out how to use libimago.
The simplest way to load image data in RGBA 32bit is:
int width, height; unsigned char *pixels = img_load_pixels("foo.png", &width, &height, IMG_FMT_RGBA32); img_free_pixels(pixels);
To load image data in the closest possible format to whatever is natively stored in each particular image file, use:
struct img_pixmap img; img_init(&img); img_load(&img, "foo.png"); /* use img.fmt to determine the actual pixel format we got */ img_destroy(&img);
There's also an optional interface for loading an image and creating an OpenGL texture out of it in a single call:
unsigned int texture = img_gltexture_load("foo.png");
To build and install imago2 on UNIX run:
./configure make make install
If you wish to avoid the libpng or libjpeg dependencies, you may disable
support for these formats by passing
To build on windows just use msys2/mingw32 and follow the UNIX instructions.
To cross-compile for windows with mingw-w64, try the following incantation:
./configure --prefix=/usr/i686-w64-mingw32 make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar sys=MINGW32 make install sys=MINGW32