caesium-clt/README.md

3.6 KiB

Caesium Command Line Tools

Test Clippy Code formatting

caesiumclt is a command line tool for image compression written in Rust, supporting lossy, lossless, and maximum size compression. Based on libcaesium.

demo

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

Build

cargo build