image-tool

A simple mass image manipulation commandline tool for resizing and converting format. This tool is specifically designed to for performing conversion on large amount of images with different formats efficienctly.

installation

Install binary from crates.io: cargo install image-tool Then add ~/.cargo/bin/ to PATH to run it anywhere.

Usage

Currently there are two subcommands: resize and convert - resize: resize image(s), can be a file or a folder - convert: convert image(s) to a certain format, works with a file or a folder.

Usage for resize

``` USAGE: image-tool.exe resize [FLAGS] [OPTIONS] --dimension

FLAGS: -f, --folder Perform resize for all images in a folder -g, --guess Guess file format based on the first few bytes -h, --help Prints help information -V, --version Prints version information

OPTIONS: -d, --dimension Specify the output dimension of the file in the form "SIZExSIZE" (eg. "64x64") -o, --output Specify the output file name and path

ARGS: Specify the path of the file/folder to perform the operation An example to resize all images under folder `test/` to size 36x36. Notice all resized images will be replaced in place. image-tool resize test/ -f --dimension 36x36 To resize a file `test.png` to 128x256, and save it as a new file `resized.png` without replacing the original. image-tool resize test.png --dimension 128x256 -o resized.png `` **Note**: By default image format are extracted from the file extension. Adding the flag-g` will force the tool to guess the format based on the first few magic bytes, while sacrificing some efficiency.

Usage for convert

``` USAGE: image-tool.exe convert [FLAGS] [OPTIONS] --format

FLAGS: -f, --folder Perform resize for all images in a folder -g, --guess Guess file format based on the first few bytes -h, --help Prints help information -V, --version Prints version information -y, --yes Agrees to all following prompts (eg. delete original files)

OPTIONS: -F, --format Specify the output format (eg. "PNG"). Supported format are PNG, JPEG -o, --output Specify the output file name and path

ARGS: Specify the path of the file/folder to perform the operation An example to converting all images under folder `test/` to the format `jpeg`, and save it to another folder `result/`. A prompt will ask if the original files should be deleted or not. image-tool convert test/ -f --format jpeg -o result/ To convert a single file `test.jpeg` to a `png`, and proceeds to delete the original file without a prompt. image-tool convert test.jpeg --format png -y `` **Note**: By default image format are extracted from the file extension. Adding the flag-g` will force the tool to guess the format based on the first few magic bytes, while sacrificing some efficiency.

build

Building the tool from scratch requires the rust compiler and cargo to be installed on your machine. Then execute the following commands: git clone https://github.com/Isaac-the-Man/image-tool.git cd image-tool/ cargo build --release Next to be able to use the tool anywhere on your machine, add target/release/ to PATH.

credit

This binary is essentially just a wrapper for the rust libary image.