|
||
---|---|---|
.github | ||
.idea | ||
docs | ||
samples | ||
src | ||
.gitignore | ||
CHANGELOG.md | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE.md | ||
README.md | ||
rustfmt.toml |
README.md
Caesium Command Line Tools 
caesiumclt is a command line tool for image compression written in Rust, supporting lossy, lossless, and maximum size compression. Based on libcaesium.
Table of Contents
Features
- Quality-based lossy compression
- Lossless compression - the very same image is returned
- Maximum size compression - the image is compressed to a specific size
- Resize images
- Convert to different formats
- EXIF metadata preservation
- Recursive directory compression
- Folder structure preservation
- File timestamp preservation
- Custom suffix for output files
- Fast and customizable multithreaded processing
Supported formats
Format | Lossy | Lossless |
---|---|---|
JPEG | ✅ | ✅ |
PNG | ✅ | ✅ |
WebP | ✅ | ✅ |
TIFF | ❌ | ✅ |
Getting started
Binaries
You can download the latest binaries from the releases page. Supported platforms are:
- Windows (x86_64)
- macOS (x86_64/aarch64)
- Linux (x86_64/aarch64)
Installation from source
If you have Rust installed, you can install the tool using Cargo:
cargo install --git https://github.com/Lymphatus/caesium-clt caesiumclt
If you instead want to build the tool refer to the Development section.
Usage
For a full list of all flags and options refer to the full docs.
Examples
Losslessly compress image1.jpg
, located in the home
directory, into a folder called output
$ caesiumclt --lossless -o ~/output/ ~/image.jpg
Compress image1.jpg
, located in the home
directory, into a folder called output
with lossy compression
and quality set to 80
$ caesiumclt -q 80 -o ~/output/ ~/image.jpg
Losslessly compress image1.jpg
, located in the home
directory, into a folder called output
and keeps
EXIF metadata and original file date information
$ caesiumclt --lossless -e --keep-dates -o ~/output/ ~/image.jpg
Losslessly compress Pictures
folder and subfolders, located in the home
directory, into a folder called
output
$ caesiumclt --lossless -R -o ~/output/ ~/Pictures
Losslessly compress Pictures
folder and subfolders, located in the home
directory, into a folder called
output
retaining the input folder structure
$ caesiumclt --lossless -RS -o ~/output/ ~/Pictures
Development
Requirements
- Rust >= 1.79.0
Build
cargo build