Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎨 Image Filter Studio

CS1004 – Object Oriented Programming | Semester Project National University of Computer & Emerging Sciences

A console-based C++ application that loads real JPG/PNG images, applies a pipeline of 10 image filters, and saves the processed result back to disk. Built as an OOP portfolio project demonstrating every core concept from the course.


✨ Features

  • Load any JPG or PNG image from disk
  • 10 filters: Grayscale, Invert, Brightness, Contrast Stretch, Red/Green/Blue Channel, Box Blur, Flip Horizontal, Flip Vertical
  • ASCII art preview in the console after each filter
  • Admin panel: manage filters and customer accounts
  • Customer panel: register, login, build filter pipelines, view history
  • All data persisted to .txt files between runs

🔧 How to Compile

g++ -std=c++17 -Wall src/*.cpp -o ImageFilterStudio.exe

Make sure stb_image.h and stb_image_write.h from libs/ are accessible. Copy them into src/ if needed.

▶️ How to Run

.\ImageFilterStudio.exe

🔑 Admin Login

Field Value
Username admin
Password Admin1234

🗂️ OOP Concepts Demonstrated

Concept Where
Encapsulation Pixel, Image, Customer
Abstract class User, Filter
Inheritance Admin, Customer from User; all 10 filters from Filter
Runtime polymorphism vector<Filter*> in FilterSession
Operator overloading Pixel::operator+, operator<<
Static method Pixel::clamp()
Deep copy constructor Image
Friend class FilterSessionImage
Multiple inheritance Image : Saveable, Displayable
Virtual destructor Filter
Method chaining FilterSession::addFilter()
Dynamic memory Pixel** grid with new / delete
File I/O CustomerFileManager, CatalogFileManager, SessionFileManager

📁 Data Files

File Purpose
catalog.txt Filter list with enabled/disabled state
customers.txt Registered customer accounts
sessions.txt History of completed filter sessions
blocked_cnics.txt CNICs banned by Admin

📚 Libraries Used

About

Console-based C++ Image Filter Studio | Applies 10 image filters (grayscale, blur, flip, etc.) to real JPG/PNG files using polymorphism, abstract classes, dynamic memory, and file I/O.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages