Overview

For a university C++ course, I developed a console application that converts images into ASCII art. The project gave me practice with file handling, image processing, inheritance, polymorphism, and console interfaces.
The application maps the brightness of each pixel to an ASCII character. It can display the result in the console or save it to a text file. Its console interface also lets users select images, apply filters, and run slideshows.

Technical details
The application is written in C++. It uses NCurses for the console interface and LibPNG and LibJpeg to read image files. Separate classes handle image loading, filters, and interface components.
I implemented the image processing myself. The program detects BMP, PNG, and JPEG files, reads the image data, converts it to grayscale, and maps each pixel to a character from a predefined set. Users can change that set in a configuration file.
Technologies used
- C++
- NCurses (for console UI)
- LibPNG (for PNG image handling)
- LibJpeg (for JPEG image handling)
- Make (for build automation)