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 在 图像
每月 156 次下载
40KB
757 行
Image Compressor
一个用于将图像缩放和压缩为 jpg 格式的库。
功能
- 压缩和缩放单个图像到 jpg 格式。
- 多线程。
- 自定义压缩图像的质量和尺寸比。
- 通过
mpsc::Sender
发送完成消息(参见 rust 教程中的使用消息传递在线程之间传输数据)。
支持的图像格式
访问 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),
}
Compressor
和 compress_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