NOTE: The Windows binary can be recognized as a false positive by some anti-virus software, possibly because it was compiled with MinGW from Cygwin. Naturally, caution is always important because running random executable from the Internet can be very dangerous.

This program converts images into text and simple colors, something that could be displayed on a terminal window, and also saves the resulting images into bmp- or png-files. Separate font-images in bmp-files are required for the software to know how the text looks like, so generated results will look different in different terminal software. However, the generated result image will always look the same because it is created using the font-images. The program is also able to support all Unicode characters.
There are two versions of the software. The basic version reads a single bmp-file as an input, prints out the generated result in terminal and saves it into another bmp-file. The video version can read any amount of png-files as input and save generated results into separate png-files. The input png-files must be named 00000.png, 00001.png, 00002.png... Alternatively 00000.png can be omitted, so that 00001.png is first. The png-files must also be the same size in pixels and contain exactly 3 color channels (no alpha channel) because otherwise the results are incorrectly generated.

NOTES:
Any changes to the settings such as the image size, quality/speed, color settings, etc. have to be made in settings.hpp after which the program has to be recompiled. Note that in the font-images each character has to be the same size in pixels, which is 8x15 in the provided example. The basic version of the software should be easy to compile as it doesn't require any additional libraries but the video version requires libpng.
The code also contains OpenMP pragmas that will make the program multithreaded when compiled with OpenMP. If using the Makefile, you can enable OpenMP by compiling with "make openmp".
