V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fangtu
V2EX  ›  分享发现

正式介绍开源隐私优先的本地图片压缩工具 - LocalSqueeze

  •  2
     
  •   fangtu · 26 天前 · 1050 次点击

    还在把图片上传到云端压缩?试试 LocalSqueeze,一款完全在本地运行的图片压缩工具

    作为开发者,这些场景你肯定不陌生:

    • 📸 博客配图:压缩图片,让网页加载飞快。
    • 🎨 UI 设计:批量处理设计稿,瘦身文件大小。
    • 📱 移动应用:优化 App 内的图片资源。
    • 🌐 网站优化:减小图片体积,提升用户体验。

    传统的在线压缩工具虽然方便, 比如作者经常用的tinify,但是使用起来还是会有一些问题:

    • 🔒 隐私顾虑:图片得先上传到别人服务器。
    • 🌐 依赖网络:没网就歇菜。
    • 💰 使用限制:免费版通常有次数或大小限制( Web Pro $39 ,Web Ultra $149 )。
    • ⏱️ 效率问题:上传下载费时间,批量操作麻烦。

    而 LocalSqueeze 是一款基于 Electron + React 构建的跨平台桌面图片压缩应用,正好解决了这些问题。所有的图片,从始至终都在自己电脑上处理。

    核心技术选型

    • Electron 37.2.1:跨平台桌面应用框架
    • React 19.1.0:现代化 UI 构建
    • TypeScript:类型安全保障
    • Tailwind CSS 4.0.4:原子化 CSS 框架
    • Sharp 0.34.3:高性能图片处理引擎
    • Electron Forge:打包发布

    🚀 功能特性介绍

    🎨 用户体验

    • 🌓 深色/浅色主题:深色主题很好看

    • 👁️ 实时预览对比:压缩前后可以进行对比,效果一目了然

    • ⚙️ 灵活配置:压缩质量、格式转换等参数可调,配置操作简洁明了

    • 📏 尺寸调整:支持按比例或固定尺寸缩放

    • 📊 压缩统计:详细的压缩报告和节省空间统计

    • 💾 批量导出:一键保存所有处理结果

    📦 快速上手

    开发者安装

    # 克隆项目
    git clone https://github.com/freeany/LocalSqueeze.git
    cd LocalSqueeze
    
    # 安装依赖
    npm install
    
    # 启动开发环境
    npm run start
    
    # 构建生产版本
    npm run make
    

    普通用户下载

    为啥选择 LocalSqueeze 呢?

    与同类产品的对比

    特性 LocalSqueeze TinyPNG Picdiet
    🔒 隐私保护 ✅ 完全本地 ❌ 需要上传 ✅ 本地处理
    💰 使用成本 ✅ 完全免费 ❌ 有限制 ✅ 免费
    🚀 压缩效果 ✅ 优秀 ✅ 良好 ⚠️ 一般
    🔧 自定义选项 ✅ 丰富 ❌ 有限 ⚠️ 基础
    🌐 跨平台支持 ✅ Win/Mac/Linux ✅ Web ❌ 仅 Mac
    📦 批量处理 ✅ 支持 ⚠️ 有限制 ✅ 支持

    🌟 欢迎一起来玩:开源与贡献

    LocalSqueeze 采用 MIT 开源协议,欢迎社区里的大家贡献和提 issue:

    # 项目结构清晰,方便理解和扩展
    src/
    ├── main.ts           # Electron 主进程
    ├── preload.ts        # 安全桥接层
    ├── app.tsx           # React 应用入口
    ├── components/       # UI 组件库
    ├── views/            # 页面视图
    └── server/           # 后端服务
        ├── compression/  # 压缩核心
        ├── ipc/          # 进程通信
        └── workers/      # 工作线程
    

    🤝 怎么参与?

    • 🐛 发现 Bug ? 开个 Issue 说清楚。
    • 💡 有好点子? 来聊聊新功能。
    • 🔧 会写代码? 直接提 PR 改进。
    • 📖 文档不足? 帮忙写清楚点。

    💭 写在最后

    LocalSqueeze 不仅仅是一个图片压缩工具,更是对"本地优先"理念的践行。在这个数据满天飞的时代,能有一个 完全在本地运行、免费、压缩效果又好 的图片工具,真的很省心。LocalSqueeze 就是冲着这个目标去的,希望能帮你既压缩图片又保护隐私。

    🌟 如果这个项目对你有帮助,欢迎给个 Star 支持一下!


    📞 联系方式

    让图片压缩回归本地,让隐私保护成为常态。

    20 条回复    2025-08-09 21:53:30 +08:00
    RedisMasterNode
        1
    RedisMasterNode  
       26 天前
    Hi. Thanks for sharing!

    我在 Macbook Pro M1 ( https://support.apple.com/en-hk/111902 ),编译后的安装包提示损坏。

    npm run make 可以正常使用,my build: https://drive.google.com/file/d/1lr1gbf7Wn8vVnUxGONHV7aG5h45prVCm/view?usp=drive_link

    另外不知道 webp 和 PNG 格式是不是也支持动图的呀,如果是的话就最好啦(没测试过,如果已经支持请忽略,感谢!):
    - https://en.wikipedia.org/wiki/APNG
    fangtu
        2
    fangtu  
    OP
       26 天前
    hi, 因为我本人的 mac 是 intel 芯片的,我在本地测试了没问题,很抱歉,M1 芯片的我没有正式测试过,是提示 sharp module not found 吗?那可能与打包的环境有关,你可以尝试使用:npm run make:mac:arm64 命令来打包获得构建后的 dmg 包。 动图你指的是 gif 图片吗? 也是可以的
    fangtu
        3
    fangtu  
    OP
       26 天前
    sorry ,这个 https://zh.wikipedia.org/wiki/APNG 我还没有研究过,后期可以考虑支持进去~
    cat
        4
    cat  
       26 天前   ❤️ 1
    @fangtu 你需要像这样 @他/她 @RedisMasterNode 才会收到你的回复
    RedisMasterNode
        5
    RedisMasterNode  
       26 天前
    @fangtu 打包没有问题,本地打包的都是可用的。GitHub release 的预打包好的内容不行。根据描述不知道是不是跨平台编译导致的问题。

    Anyways ,nice to fix 但是用户也可以本地自己 clone 编译,没有什么困难点,文档写得很清晰了。

    额外功能也是 nice to have ,现有的功能挺好的。
    fangtu
        6
    fangtu  
    OP
       26 天前
    @cat 哈哈,学到了,新人,以前只默默看帖,没互动过,感谢
    mayli
        7
    mayli  
       26 天前
    📦 更优雅的技术选型 - 基于 Electron 构建,虽然包体积稍大,但提供更好的跨平台兼容性和用户体验
    --- 大就是优雅?

    🎯 更强的压缩核心 - 自研压缩算法,压缩效果和处理速度显著优于竞品
    --- 佬有自研压缩算法?看了下并没有。

    就别吹了,感觉像是 vibe coding 出来的 electron
    fangtu
        8
    fangtu  
    OP
       25 天前
    @mayli 优雅与否,是看他解决了什么问题,以及解决的效果如何,包体积确实是个 trade-off ,但确实是我的技术栈之一,我也没说过大就是优雅,能成熟的跨平台解决方案就足够了。有些图片几十 MB 、几百 MB ,这算很大吗?你使用过软件压缩几十 MB 的图片吗?我自己评测过压缩速度和压缩效果,至少在我的角度表现能力确实很好 。至于压缩算法,我并没有说过完全自研底层压缩算法,是基于业界优秀的开源压缩库进行 智能集成和优化,而且我的技术栈是 js ,算法是基于 sharp 库。有什么问题?关于 vibe coding ,2025 年了,Ai 辅助开发已经是常态了,能准确的调动 AI 协同完成工程的落地,已经成了开发者的核心能力之一了,难道你认为的 vibe coding 就是一句话什么软件都出来了?我认为我开发出来的东西是有价值的,是有实际需求的,而且市面上我暂时没找到好用的,我借助 vibe coding 开发出来一款我认为好用的软件,能解决我实际问题的软件,开源出来,有问题吗?如果调用 AI 完善产品算‘吹’,那 GitHub Copilot 70%的开发者用户都在吹。至于价值,等你用完软件再抨击也不迟
    mayli
        9
    mayli  
       25 天前 via Android
    > 难道你认为的 vibe coding 就是一句话什么软件都出来了

    我评论的是前面两条吹的有点过,看代码像感觉像,别激动,我又没说 vibe coding 咋样,你咋先着急了。

    我只是单纯不喜欢小工具包个 electron ,和没事吹自研。
    mayli
        10
    mayli  
       25 天前 via Android
    比如对比 Picdiet ,说它仅 mac, 你粘贴 ai 生成内容的时候自己看过吗?
    fangtu
        11
    fangtu  
    OP
       25 天前
    @mayli 刚看了下你主页,是个杠精,没啥说的,我没激动啊,就事论事而已,我花费不少精力做出来的工具软件免费开源出来第一次被人怼还是挺不爽的,看来还是得练。
    fangtu
        12
    fangtu  
    OP
       25 天前
    @mayli 这种东西需要粘贴 ai 吗?网上一搜一大把的评测网站
    mayli
        13
    mayli  
       25 天前 via Android
    @fangtu 的确得多练
    fangtu
        14
    fangtu  
    OP
       25 天前
    @mayli 文章有些东西我是找的网站上评测,还要谢谢你帮我找出来了有些问题,再次完善一下写这个软件不是为了什么,只是想在职业生涯中留下一些东西。等下次我还是会继续完善然后还是发文,欢迎你来找问题,如果 V2EX 有置顶,评论给你置顶。
    mach9452
        15
    mach9452  
       25 天前
    压缩个图片先安装 100M 的客户端。。不压也罢。一个 node 命令行脚本就能实现的功能没必要搞这么臃肿
    fangtu
        16
    fangtu  
    OP
       25 天前
    @mach9452 你说的有道理,每个人需求都不一样
    aero99
        17
    aero99  
       24 天前
    让图片压缩回归本地,让隐私保护成为常态。

    支持
    aero99
        18
    aero99  
       24 天前
    @mach9452 #15 所有工具都不是针对偶尔使用的需求开发的
    iorilu
        19
    iorilu  
       23 天前
    这事不是 magick 一行命令就行吗
    fangtu
        20
    fangtu  
    OP
       23 天前
    @iorilu 你的观点没错,如果只是单次压缩几张图,命令确实最快。但工具化解决的是标准、易用性问题。与命令行相比设计师或非技术同事使用能避免很多问题
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1191 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 23:27 · PVG 07:27 · LAX 16:27 · JFK 19:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.