#图像压缩 #图像缩放 #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 13/week @ 2024-04-29 13/week @ 2024-05-06 9/week @ 2024-05-13 51/week @ 2024-05-20 42/week @ 2024-05-27 21/week @ 2024-06-03 180/week @ 2024-06-10 52/week @ 2024-06-17 11/week @ 2024-06-24 8/week @ 2024-07-01 6/week @ 2024-07-08 40/week @ 2024-07-15 15/week @ 2024-07-22 20/week @ 2024-07-29 1/week @ 2024-08-05 120/week @ 2024-08-12

每月 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