IrfanPaint going opensource

Since, as some may have noted, I'm not having anymore much time to spend working on IrfanPaint, I'm making the whole project opensource: in this way, any people with the right abilities will be able to contribute to IrfanPaint, improving it without having me to do all the work. I'm not talking only about programming: even graphic artists, UI designers, ... would be really appreciated.

I've just released the sources, but I'd like to find out if anybody there would actually be interested in contributing to IrfanPaint; for the programming work, C++ programming skills are required, along with a good knowledge of Win32 APIs (GDI and User APIs in particular).

The project isn't very big, but isn't actually small, it's about 18000 lines of code; the main development tool is Visual C++ 2003 (VC7.1), which has an almost complete support for the C++98 standard and is still widely supported by most libraries. The compiler and the tools of VC7.1 are also available free of charge, and I may convert the project to makefile so that people without VC could compile it.

IrfanPaint has very few dependencies, it uses just the Win32 APIs and some #include-only features of boost (mostly smart pointers), although in the future it may use AGG to perform drawing.

The stated objectives are to improve existing features (adding antialiasing support and unlinking from the limited GDI APIs) and add new ones (especially a minimum of vectorial capabilities), while keeping the final object size small.

Another important milestone for me would be to decouple most of the plugin from IrfanView, maybe creating a generic interface that would translate requests from the plugin (current shown area, window to DIB coordinates translations, ...) to the specific window messages used to communicate with IrfanView.

This would make simpler a port to other applications and plugins: for example, I was asked by another plugin developer if Paint could be used in a window of his plugin: this at the moment is quite difficult, but creating a sharp separation between host-plugin interface and plugin inner working would make such a port quite easy.

Pratical info

IrfanPaint is hosted on Google Code, and its project page is

The code is released under the BSD license, i.e. anybody can use any part of my code to do anything, as far as they add a credit to me and to the people who worked on IrfanPaint.

If anyone is interested in contributing, please contact me; I'll be glad to explain anything about how IrfanPaint code works.

Posted by Matteo Italia on Sun, 9 May 2010
tags: opensource, bsd, irfanpaint.