The program reads a PPM image file, alter the RGB elements of each pixel, and prints the resulting image as a new PPM file.
The PPM (or Portable Pix Map) image format is encoded in human-readable ASCII text. The image has two parts:
- Header (metadata)
- Body (pixel values)
The project implements following functionalities:
negate_red
: negates the red number of each pixelnegate_green
: negates the green number of each pixelnegate_blue
: negates the blue number of each pixelflatten_red
: sets the red value to zeroflatten_green
: sets the green value to zeroflatten_blue
: sets the blue value to zeroflip_horizontal
: flips each row horizontallygrey_scale
: sets each pixel value to the average of the threeextreme_contrast
: changes each color number to either the highest color number possible or to 0blur_horizontal
: replaces the values of the red numbers of three adjacent pixels with their averagerandom_noise
: adds a random number to each color number or subtracts a random number
The program has a simple command line interface.
Original Image | Greyscale |
---|---|
![]() |
![]() |
Flip Horizontal | Extreme Contrast |
![]() |
![]() |
Blur Horizontal | Negate Red |
![]() |
![]() |
Flatten RG | Random Noise |
![]() |
![]() |
Further details about the project can be found here.