Skip to content

Compression Engine

zipax-bot edited this page Aug 11, 2026 · 2 revisions

压缩引擎

压缩引擎位于 zipax-cross/crates/zipax-core,是项目最核心的部分,由桌面应用和 CLI 共享。

格式支持

格式 编码方式 说明
JPEG mozjpeg 高质量 JPEG 压缩
PNG oxipng + imagequant 无损优化 + 调色板量化
WebP webp crate 有损/无损
AVIF ravif (RAV1E) 新一代高效格式
HEIC libheif-rs 读取 HEIC 并转码(嵌入式 libheif)
TIFF image crate 支持读取
GIF image crate 支持读取
PDF Ghostscript(外部进程) 压缩 PDF,见 Ghostscript-Install

注:HEIC 需要 libde265 系统库,deb/rpm 包已声明 libde265-0 / libde265 依赖。

压缩模式(CompressionMode)

模式 key 默认质量 说明
高质量 quality L1 优先视觉质量
均衡 balanced L3 质量与体积平衡(默认)
小文件 size L6 优先小体积
高级 advanced L3 手动控制质量
目标大小 target / target_size L3 压缩到指定 KB(如 500KB)

质量等级(QualityLevel)

共 6 级(L1 最高 → L6 最低),映射到 0.0–1.0 的质量浮点值:

等级 质量值
L1 0.95
L2 0.88
L3 0.80
L4 0.70
L5 0.60
L6 0.50

压缩规划(plan)

plan_compression 在执行前生成 CompressionPlan:

  • 预估压缩后的大小与节省量
  • 目标大小模式下迭代逼近目标 KB
  • 前端根据 plan 显示「预计节省」信息
  • 检查「已压缩过」标记,支持跳过已压缩文件

工作流选项

  • 覆盖原文件:直接写入原路径
  • 跳过已压缩文件:识别此前压缩痕迹
  • 压缩后复制:输出到指定目录并保留原文件
  • 保留元数据:尽可能保留 EXIF 等信息
  • 尺寸限制:max-width / max-height 限制输出尺寸

批处理

process.rs 支持一次压缩多个文件(桌面端 compress_batch、CLI 多文件参数),配合 notify 实现文件夹自动压缩:监控目录中新增文件后自动加入队列。

回到 Home · English: Compression Engine

Clone this wiki locally