image_compressor

Crates.ioimage_compressor
lib.rsimage_compressor
version1.5.2
sourcesrc
created_at2022-03-21 23:45:20.290231
updated_at2024-08-15 17:52:13.520267
descriptionA image compressing module using mozjpeg, and image crates.
homepage
repositoryhttps://github.com/altair823/image_compressor
max_upload_size
id554393
size40,172
Kim Tae-hyeon (altair823)

documentation

README

Image Compressor

Crates.io Documentation

A library for resizing and compressing 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 will compress all images, using multithreading, in a given source folder and will wait until everything is done. If user set a Sender for FolderCompressor, the method sends messages whether compressing is complete.

use std::path::PathBuf;
use std::sync::mpsc;
use image_compressor::FolderCompressor;
use image_compressor::Factor;

let source = PathBuf::from("source_dir");   // source directory path
let dest = PathBuf::from("dest_dir");       // 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(source, dest);
comp.set_factor(Factor::new(80., 0.8));
comp.set_thread_count(4);
comp.set_sender(tx);

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

Compressor and compress_to_jpg example.

Compressing just a one image.

use std::path::PathBuf;
use image_compressor::compressor::Compressor;
use image_compressor::Factor;

let source = PathBuf::from("source").join("file1.jpg");
let dest = PathBuf::from("dest");
let comp = Compressor::new(source_dir, dest_dir);
compressor.set_factor(Factor::new(80., 0.8));
comp.compress_to_jpg();
Commit count: 73

cargo fmt