This project contains a console application for processing images.
Input and output images are in the BMP file format.
BMP is using DIB header - BITMAPINFOHEADER.
There is an example here (Example_1) and here (test_script/data).
{./image_processor} {input filepath} {output filepath} [-{filter name 1} [filter param 1] [filter param 2] ...] [-{filter name 2} [filter param 1] [filter param 2] ...] ...
If no params given, app returns schema of usage.
./image_processor input.bmp /tmp/output.bmp -crop 800 600 -gs -blur 0.5
In this example:
- Image is loaded from
input.bmp. - Image is cropped to 800х600 pixels, counting from top-left.
- Image is converted to grayscale.
- Blur with sigma 0.5 is applied.
- Output image is saved in
/tmp/output.bmp
If no filters are given, app saves input image to output filepath.
Crops image to given width and height, counting from top-left.
If widht of height is greater than source image width and height, image is cropped to available area.
Converts image to grayscale.
Converts image to its Negative.
Sharpens image.
Detects edges in image. Image is converted to grayscale, than threshold is applied.
Pixels with value greater than threshold become white, other become black.

Gaussian blur, param – sigma.
Draws flash on image in position (x, y) counting from bottom-right with given radius and brightness. All pixels with brightness lower than min_brightness become black.






