# Computer Graphics Course Project [2nd Semester 2013]

A comprehensive Java application for Computer Graphics image processing operations.

![Project Image](images/image.png)

## Project Structure

```
Computer_Graphics/
├── src/              # Java source files
├── bin/              # Compiled .class files
├── images/           # Input/output image files (BMP, JPG, PNG, GIF)
│   └── image.png     # Project screenshot/diagram
├── compile.sh        # Build script
└── README.md         # This file
```

## Features

This project includes various image processing operations:

- **Image Operations**: Addition, Subtraction, Blending, Masking, Stitching
- **Transformations**: Rotation, Shearing, Resizing, Cropping, Flipping
- **Histogram Operations**: Stretching, Equalization, Matching
- **Filtering**: Convolution, Unsharp Masking, Binary Thresholding
- **Advanced**: Bit Plane Slicing, Block Averaging, Steganography

## Compilation

To compile the project:

```bash
javac -d bin src/*.java
```

## Execution

To run the application:

```bash
java -cp bin Main
```

Or alternatively:

```bash
cd bin
java Main
```

## Image Files

- Input images should be placed in the `images/` directory
- All output images will be saved to the `images/` directory
- Supported formats: BMP, JPG, JPEG, PNG, GIF

## Notes

- The application uses a GUI interface (Screen.java) to access various image processing operations
- All image paths in the code reference the `images/` directory
- Output files are automatically saved with `.bmp` extension in the `images/` directory

