New version 0.0.2

I have released a new version. This is mostly just an update of the Cairo libraries to the latest snapshot from CVS.

I made a minor change in Fl_SVG_Image so that the ARGB byte swapping is done on all platforms. This makes is easier for me to update the Cairo libraries (less changes to the Cairo code base).

As usual, let me know if you run into any problems. This should work out of the box on Linux, OS X, and Windows.

FLTK Imago

Welcome. Imago aims to be a set of advanced imaging extensions for FLTK. This first release adds basic SVG (Scalable Vector Graphics) image support. SVG is similar to Postscript or PDF except it is based on an XML file format with optional gzip compression. Take a look at the specifications if you are interested in learning more.

Imago uses Cairo and other supporting libraries from the project to supply the underlying SVG drawing support. Currently these libraries are in heavy development and need a lot of improvement before they will be fully usable.

Imago adds two new classes to the 1.1.x series of FLTK. “Fl_SVG_Image” works similar to the other image classes in FLTK, and “Fl_SVG_Button” makes it easy to create custom buttons that are based on SVG images.

Orginally I developed this to make it easy to create fully scalable interfaces. I am currently using it for development of kiosk systems, TV and media systems, and applications for controlling hardware where I want the application to look similar to the hardware it is controlling.

There are a few things that might be interesting to add to this library. The ability to actually create the GUI in SVG might be fun. This would mean that all the buttons and controls would be defined inside the SVG file. Font access via SVG would also be useful. That would be future functionality though.

In the downloads section you can find the source. The Imago source is released under the same license as FLTK (LGPL with static link exception). Also inside the full source download are several other libraries needed to make everything work. All of those libraries have either BSD-style or LGPL licenses. I have tweeked many of these libraries so that they compile and work on all the platforms (eg. Windows). I have also compiled shared and static binaries for Linux, Windows, and MacOS. Using the libfltk_imago binaries is probably the easiest method to start using the new functionality. Compiling everything from source can be complex due to all the libraries required. However, I have tried to make it simple. There are autoconf/Makefiles and a Visual Studio solution for building on the various platforms.

Contact me at

For an excellent free SVG drawing program, take a look at Inkscape.

Screenshots of FLTK Imago test application (Linux, Windows, MacOS X):

screenshot1 screenshot2 screenshot3