PicSharp:开源、多平台、小而美的图片压缩工具,支持本地和 TinyPNG 压缩

17 天前
 Jaylen

项目地址: https://github.com/AkiraBit/PicSharp

开发这个应用的初衷来自于自己以及身边人(对象是产品经理,同事朋友主要从事互联网开发、运营、摄影以及平面设计等等)的需求,我主业是全栈软件开发,对于我来说,工作项目的图片压缩基本由 CI 来完成,但日常工作生活依旧会有很多需要手动压缩图片的场景,除了使用网站压缩外,还用了一段时间 Tinypng4Mac ,可惜存在不少已知问题且应该是不维护了,以及压缩控制条件配置少、只能配置一个 API KEY ,对于有多个账号且经常用超免费额度的我来说,用起来不够爽,因此打算根据自己的想法和工作流开发一个。

PicSharp 在年前开始立项,工作之余开发了差不多 3 个月,开发期间主要是我自己、身边的同事朋友们在使用,听取了他们的一些想法建议以及参考了一些 PC 图片压缩软件,欢迎大家使用和反馈👏

✨ 主要特性

  1. 基于 Tauri V2 和 React 技术栈开发,支持 Mac 、Windows 、Linux 。由于我工作主力机是 Mac ,因此 Mac 上系统集成能力更强些,例如整合到 Finder 的服务菜单等等,相关功能 Windows 后续也会支持。
  2. 支持本地压缩和 TinyPNG 。本地压缩支持PNGJPEGWebP/Animated WebPAVIFTIFFGIFSVG7 种格式; TinyPNG 支持多 API Keys 管理,自动校验 Key 有效性并在不可用时切换到可用 Key 上。
  3. 监控目录新增图片并自动压缩:类似开发时的 watch ,当被监听的目录有新增图片时,自动触发压缩,不再需要手动压缩后复制到工作目录,实现自动化工作流。
  4. 强大批处理能力:得益于 Rust 优异的 IO ,轻松应付 10w+的文件遍历与解析,高效率、低占用完成图片压缩批处理,本地压缩模式下,10w 张图片压缩只需 8 分钟左右。
  5. Deeplink 调用,不管是脚本还是其它 APP 都可以通过URL Scheme获得 PicSharp 完整的图片压缩能力。

其他功能详情请移步 Github 主页。

📌 后续计划

  1. 格式转换、抠图功能
  2. 更精细的压缩条件控制(尺寸控制、最小压缩体积控制等等)
  3. 基于已有的 Deeplink 能力,集成到 Raycast 中
  4. 本地 MCP 服务
  5. 开发产品及文档官网

如果对你有帮助,点个🌟吧,感兴趣的朋友可以一起参与共建🎉

1398 次点击
所在节点    分享创造
11 条回复
deacyn
16 天前
很强,已 Star !
waytocode
16 天前
既然已经是本地压缩,为什么要要用 tinypng ,需要调用 API 上传到 tinypng 么
Jaylen
16 天前
@waytocode 这是两种模式,可以在设置里自由切换。追求精致压缩比可以选择 TinyPNG 模式,但需要提前配置 API Key ;图片量大,需要高效批处理或者有隐私安全要求,可以选择本地压缩。
Jaylen
16 天前
@deacyn 感谢支持!
beyondstars
14 天前
我让 claude 给我生成一段 ffmpeg 命令行代码,是不是也能完成类似的需求。
deacyn
14 天前
测试了一下,选择了本地无损压缩最后生成的图片和原图还是有一些区别。
Jaylen
14 天前
@beyondstars 当然,但是杀鸡焉用牛刀,对于绝大部分非开发者而言,未必接触过 ffmpeg 和命令行,最简单的方法还是打开一个图片压缩网站;其次 ai 生成 ffmpeg 命令行代码再执行我觉得效率不高且无法复用,最好封装成一个专用 agent ;如果要使用 cli 工具的话,ffmpeg 也不是最佳选择,pngquant 、mozjpeg 等在压缩比和编码器参数精细控制上更具优势
beyondstars
14 天前
命令行就能干成大多数事,也不用加载一大堆额外资源。把命令行能做的,写一大堆 prompt, js, css, go 搬到 web 上,想不出有什么比这更无聊。我不是针对谁,所有类似的项目都是如此。

当然,有的软件确实需要复杂 ui 才能运行:photoshop, aftereffect cad 等,不过那不属于我说的。
Jaylen
12 天前
@deacyn 可以发下图片吗,我看看啥问题
Jaylen
12 天前
@deacyn 找到问题了,是由于对编码器的色彩量化程度控制不够合理造成的。png 是一种无损压缩格式,对其进行有损压缩是通过人为引入的数据精简过程(如色彩量化、去噪等)实现的,而不是基于 png 格式标准。和 TinyPNG 一样,本地压缩也是通过对原图进行“有损色彩量化”( 如将 24-bit RGB 原彩 调整为为 8-bit 基于调色板的索引色模式)来实现,当色彩量化控制不合理时,就会导致压缩后的图片某些地方偏离原本的颜色,该问题将在 1.2.1 版本修复,感谢纠正!
deacyn
12 天前
@Jaylen 支持!加油👏

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1136401

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX