Image Compressor

Crates.io Documentation

A library for resize and compress images to jpg.

Features

Supported Image Format

Visit image crate page. This crate uses image crate for opening image files.

Examples

FolderCompressor and its compress function example.

The function compress all images in given origin folder with multithread at the same time, and wait until everything is done. If user set a Sender for FolderCompressor, the method sends messages whether compressing is complete.

```rust use std::path::PathBuf; use std::sync::mpsc; use imagecompressor::FolderCompressor; use imagecompressor::Factor;

let origin = PathBuf::from("origindir"); // original directory path let dest = PathBuf::from("destdir"); // destination directory path let thread_count = 4; // number of threads let (tx, tr) = mpsc::channel(); // Sender and Receiver. for more info, check mpsc and message passing.

let mut comp = FolderCompressor::new(origin, dest); comp.setcalfunc(|width, height, filesize| {return Factor::new(75., 0.7)}); comp.setthreadcount(4); comp.setsender(tx);

match comp.compress(){ Ok(_) => {}, Err(e) => println!("Cannot compress the folder!: {}", e), } ```

Compressor and compress_to_jpg example.

Compressing just a one image. rust use std::path::PathBuf; use image_compressor::compressor::Compressor; use image_compressor::Factor; let origin = PathBuf::from("origin").join("file1.jpg"); let dest = PathBuf::from("dest"); let comp = Compressor::new(origin_dir, dest_dir, |width, height, file_size| {return Factor::new(75., 0.7)}); comp.compress_to_jpg();