Skip to content

Davie-Tj/FlagForger-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

FlagForge [Flag Illustrator project]

Overview

A C++ image processing application that creates and converts national flags into different image formats using object-oriented programming principles. The program can generate flags of various countries and export them in: color (PPM), grayscale (PGM), or black-and-white (PBM) formats.

What it does

  1. Draws National Flags: Creates accurate representations of flags from different countries.
  2. Multiple Output Formats:

PPM - Full color image PGM - Grayscale conversion PBM - Black and white (monochrome)

  1. Easy to Extend: Simple to add new flags or modify existing ones.

Key features

  1. FlagIllustrator Base Class: Manages the core image and drawing functionality
  2. BWIllustrator: Converts flags to black and white format
  3. GrayscaleIllustrator: Transforms flags into grayscale images
  4. Supported Flags: Nigeria, Japan, Austria (easily expandable)

Technical Highlights

  1. Uses C++ modules for modern code organization
  2. Implements inheritance and polymorphism
  3. Handles image memory management automatically
  4. Provides clean, intuitive interface for flag generation

Perfect for learning

  1. Object-oriented design with inheritance
  2. Polymorphism through virtual functions
  3. Image processing fundamentals
  4. Memory management best practices
  5. Clean code architecture

See docs folder for the UML class daigram

How to compile and run

Use batch file (Windows):

double click "build.bat"

#manual coompilation open terminal in the src folder and see commands in the batch file on how to compile C++ modules