994AK/leanpic

A clean, local-first image compressor for macOS.

★ 2Forks 0TypeScriptGitHub ↗Compare
avifimage-compressionimage-optimizerjpgmacospngprivacy-firstreactrusttauriwebp

README

LeanPic

LeanPic 是一个轻量、干净、本地优先的图片压缩工具。

把图片或文件夹拖进去,选择一个压缩模式,LeanPic 会在本机完成批量压缩、格式转换、尺寸调整、压缩前后对比和报告生成。图片不会上传到云端,默认不覆盖原图,适合设计师、开发者、内容创作者和需要批量处理图片的人。

Features

  • 批量扫描 JPG、PNG、WebP、AVIF
  • 批量压缩并显示逐项状态
  • 支持保持原格式或转换为 JPG、PNG、WebP、AVIF
  • 支持最大宽高调整
  • 支持基础裁剪参数
  • 支持删除 metadata
  • 压缩前后预览对比
  • 批处理结束生成 report.json
  • 默认输出到 compressed 文件夹,不覆盖原图
  • 本地处理,无上传、无遥测

Presets

  • 推荐:适合大多数日常图片,平衡体积和画质
  • 更小:优先减小体积,适合网页和列表图
  • 无损:尽量保持像素不变,适合截图、Logo 和设计素材

Safety

LeanPic 默认遵守这些本地文件规则:

  • 前端只传文件路径和参数,图片读写在 Rust 侧执行
  • 默认不覆盖原图
  • 输出写入临时文件后再落到最终路径
  • 压缩结果变大时默认跳过,除非开启允许变大
  • 处理失败不会删除原图

Current Limitations

当前版本优先保证本地可用和稳定降级:

  • JPEG 使用 Rust image crate 的 JPEG 编码器
  • PNG 使用 image 编码后再用 oxipng 优化
  • WebP 使用 image 当前支持的 WebP 编码路径
  • AVIF 使用 image / ravif 编码路径,速度可能明显慢于 JPEG/PNG
  • keep_metadata 和 keep_icc_profile 是 best-effort;默认重新编码会移除大部分 metadata

后续可以接入 MozJPEG、pngquant、cwebp、avifenc、libvips,以及 SSIM / Butteraugli 质量检测。

Development

bun install
bun test
bun run build
cargo test --manifest-path src-tauri/Cargo.toml

Run the desktop app locally:

bun run tauri dev

Build a release bundle:

bun run tauri build

macOS DMG output:

src-tauri/target/release/bundle/dmg/

Stack

  • Tauri v2
  • Rust
  • React
  • Tailwind CSS
  • shadcn/ui
  • Lucide Icons

Contributors

994AK

Issues