#图像压缩 #图像缩放 #jpeg #多线程 #缩放 #压缩 #压缩机

image_compressor

使用 mozjpeg 和 image crates 的图像压缩模块。

11 个稳定版本

1.5.2 2024 年 8 月 15 日
1.5.1 2024 年 6 月 14 日
1.5.0 2024 年 1 月 11 日
1.3.0 2022 年 12 月 24 日
0.1.1 2022 年 3 月 22 日

#181图像

Download history • Rust 包仓库 13/week @ 2024-04-29 • Rust 包仓库 13/week @ 2024-05-06 • Rust 包仓库 9/week @ 2024-05-13 • Rust 包仓库 51/week @ 2024-05-20 • Rust 包仓库 42/week @ 2024-05-27 • Rust 包仓库 21/week @ 2024-06-03 • Rust 包仓库 180/week @ 2024-06-10 • Rust 包仓库 52/week @ 2024-06-17 • Rust 包仓库 11/week @ 2024-06-24 • Rust 包仓库 8/week @ 2024-07-01 • Rust 包仓库 6/week @ 2024-07-08 • Rust 包仓库 40/week @ 2024-07-15 • Rust 包仓库 15/week @ 2024-07-22 • Rust 包仓库 20/week @ 2024-07-29 • Rust 包仓库 1/week @ 2024-08-05 • Rust 包仓库 120/week @ 2024-08-12 • Rust 包仓库

每月 156 次下载

MIT 许可证

40KB
757

Image Compressor

Crates.io Documentation

一个用于将图像缩放和压缩为 jpg 格式的库。

功能

支持的图像格式

访问 image crate 页面。此 crate 使用 image crate 打开图像文件。

示例

FolderCompressor 及其 compress 函数示例。

该函数将压缩给定源文件夹中的所有图像,使用多线程,并在完成一切后等待。如果用户为 FolderCompressor 设置了一个 Sender,则该方法会在压缩完成后发送消息。

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),
}

Compressorcompress_to_jpg 示例。

仅压缩单个图像。

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();

依赖项

~8MB
~152K SLoC