Scroll to navigation



directfb-csource - C code generation utility for DirectFB surfaces


directfb-csource [options] <imagefiles>


directfb-csource is a small utility that reads PNG (Portable Network Graphics) image files and generates C code that can be used to compile an image into a DirectFB application. Below is a simple example to illustrate this.

If multiple PNG image files are passed to directfb-csource, they are combined into a single surface. The different images can then be blitted from this surface using the array of rectangles that is also dumped. This can be useful for example for icons or sprites.


Specifies the identifier name (prefix) for the generated variables. If this option is not used, the identifier is generated from the filename. You have to specify an identifer name when processing multiple images.

Specifies the pixel-format of the generated inline surface. Possible values are ARGB, RGB32, RGB24, RGB16, RGB15, RGB332, A8 and LUT8. By default the format is ARGB if the PNG image has an alpha channel or RGB32 otherwise.

If specified, images rendered to RGB16 surfaces are dithered. This reduces banding caused by the limited colorspace. This option has no effect for other pixel-formats than RGB16.

If specified, completely transparent pixels are set to this color value. This may be useful for color keying and to work around bugs in graphics driver.

Output version information.

Print brief help and exit.


Generate a header file from a PNG image file:

directfb-csource --name=foo foo.png > foo.h

Include the generated header in your application and create a surface using the surface description from the header file:

#include <directfb.h>
#include "foo.h"

IDirectFB *dfb;
IDirectFBSurface *surface;


dfb->CreateSurface( dfb, &foo_desc, &surface );


directfb-csource was inspired by and uses code from gdk-pixbuf-csource, a similar program written by Tim Janik.

The canonical place to find informations about DirectFB is at

14 May 2009 Version 1.7.7