Skip to content

CLI for image processing with histograms, binary treshold and other functions


Notifications You must be signed in to change notification settings


Repository files navigation

Image-Processing-CLI-in-Rust Build Status

CLI for processing images in Rust. Some implementation is custom and for some functionality it uses 3rd party libraries.

This project uses following libraries:

Processed images are being stored in the same folder as the source image using the name of the source image with an appended suffix.

Source: hotelroom.jpg

Copy: hotelroomCopy.jpg

Blur: hotelroomBlur.jpg

Generated histograms are also stored this way.

Implemented functions

  • Binary treshold -o binaryTreshold -v 200
  • (NAIVE) Histogram for colors (RGB) -o histogram
  • (NAIVE) Histogram for grayscale images -o histogramGrayscale
  • Average color -o average
  • Copy: -o copy
  • Thumbnail: -o thumbnail -v 96
  • blur: -o blur -v 4.0
  • brighten: -o brighten -v 10
  • huerotate: -o huerotate -v 10
  • contrast: -o contrast -v 20.0
  • grayscale: -o grayscale
  • invert -o invert


Copy image

ipcli -o copy --image "D:\Image\hotelroom.jpg"

Create a thumbnail

ipcli -o thumbnail -v 96 --image "D:\Image\hotelroom.jpg"

Generate a historgram of colors

ipcli -o histogram -i "D:\Image\hotelroom.jpg"
IPCLI  0.1
Mikolaj Wawrzyniak <mikolaj.wawrzyniak at>
Basic CLI for image processing

    ipcli [OPTIONS] --image <FILE> --operation <operation>

    -h, --help       Prints help information
    -V, --version    Prints version information

    -i, --image <FILE>             Opens specified image file and uses it for transformations.
    -o, --operation <operation>    Specifies operation to be done on the image
    -v, --value <value>            Value for the transformation. To see what values are needed, check the