Skip to content

Davie-Tj/Operator-Overloading-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

UJImage - Advanced C++ Image Processing with Operator Overloading 🖼️

A sophisticated C++ image processing class that demonstrates advanced operator overloading techniques for image manipulation and arithmetic operations.

📖 Overview

UJImage is a comprehensive C++ class that implements a robust image container with extensive operator overloading capabilities. This project showcases advanced C++ programming concepts including deep copy semantics, pixel-level operations, and stream manipulation.

✨ Features

🔧 Operator Overloading Implementations

  • = (Assignment): Deep copy assignment between UJImage instances
  • == (Equality): Per-pixel comparison of two images
  • () (Function Call): Access and update specific pixels using (row, col) coordinates
  • + (Addition): Pixel-wise addition with overflow handling (modulo 256)
  • [] (Subscript): Access pixels using row-major indexing
  • -- (Decrement): Decrease pixel values with underflow handling (wraps to 255)
  • << (Stream Output): Output image in PPM format to any output stream

🎯 Advanced Capabilities

  • Deep Copy Semantics: Proper memory management for image data
  • Bounds Checking: Safe pixel access with error handling
  • PPM Format Support: Industry-standard image format output
  • Modular Arithmetic: Correct handling of RGB value overflow/underflow

How to Compile and rund

  1. Double click on the "build.bat" batch file
  2. See contents of the batch file if want to compile manually

About

Operator Overloading

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors