• 请不要在回答技术问题时复制粘贴 AI 生成的内容
likeunix
V2EX  ›  程序员

开发一个 TinyPNG 图像压缩桌面端工具,免费开源,无限制

  •  
  •   likeunix · Jan 22, 2022 · 9331 views
    This topic created in 1750 days ago, the information mentioned may be changed or developed.

    TinyPNG 是一款深受前端工程师 喜爱的图片压缩工具,打开 http://tinypng.com ,将图批量拖拽至指定区域,图片即开始压缩。官方给出的数据显示,PNG 文件最高能减小 70%的体积。

    不过网页端压缩有单张图片 5M 的限制。所以推荐一个免费开源的 TinyPNG 桌面端工具,支持一件拖放,没有单次压缩数量限制,可显示上传下载进度,小巧快速。希望各位给个星星支持下,GitHub 和安装包下载地址见文末。

    Github 地址: https://github.com/chenjing1294/TinyGUI 安装包下载地址: http://www.redisant.cn/#Family

    Supplement 1  ·  Jan 23, 2022
    各位大佬,别忘了给小弟留个星星
    48 replies  •  2022-01-24 08:04:59 +08:00
    yEhwG10ZJa83067x
    yEhwG10ZJa83067x
    Jan 22, 2022
    1
    IPsersisiFile::Save 失败
    liuxu
    liuxu
    Jan 22, 2022 via Android❤️1
    2
    你是 tinypng 的作者还是?如果不是的话建议换项目名,尊重下别人的版权
    likeunix
    likeunix
    OP
    Jan 22, 2022❤️3
    3
    @liuxu 你看看这里还有哪些要换? https://tinify.cn/third-party ,项目名叫 TinyGUI 如何不尊重别人版权了?
    stille
    stille
    Jan 22, 2022 via iPhone❤️2
    4
    原来是 pc 版

    https://github.com/kyleduo/TinyPNG4Mac
    这个 Mac 版也更新到支持 M1 了
    likeunix
    likeunix
    OP
    Jan 22, 2022
    5
    @stille 见过,非常不错😀,我这个是 Windows 平台,不支持 mac
    maplerecall
    maplerecall
    Jan 22, 2022 via Android
    6
    http://nullice.com/limitPNG/

    顺带也推荐一个一直在用的离线版本的 png 压缩工具,支持批量有损无损压缩和不同压缩算法对比,效果很好。虽然很久没更新了但还是好用的。
    liuxu
    liuxu
    Jan 22, 2022 via Android
    7
    @likeunix 就你帖子内容看,你是基于 tinypng (可能)做的工具,这样的话 tiny 这个词和官方名字有明显的一致性,别人已经商业化了,并不应该像基于开源项目这么玩,不过只有道德问题,阿迪王也过的好好的

    不过如果你是自己基于某 lib 写的,名字没问题

    ps: 顺便我建议你用 imaginary 做,也就是直接用 libvips 做,有 c 库

    你可以试试这个 api: https://imaginary.linux.plus/
    liuxu
    liuxu
    Jan 22, 2022 via Android
    8
    @liuxu 如果官方支持的话也是可以的,我只是看到帖子提醒一下
    markgor
    markgor
    Jan 22, 2022
    9
    你这.....
    调用 tinyPNG 的 API 服务,
    做了个壳....
    不过批量和单张限制 好评
    shidianxia
    shidianxia
    Jan 22, 2022❤️3
    10
    这类工具有个完美方案: https://imageoptim.com
    开源,跨平台,离线,支持超多格式和算法,甚至支持 SVG 压缩。支持 CLI ,支持 mac 自动化。
    likeunix
    likeunix
    OP
    Jan 22, 2022❤️1
    11
    我是调用 tinyPNG 的 API 服务做了可视化界面(官方开放的 API ),方便使用,没有网页端端的单张大小限制,就是分享个自己在用的工具而已。
    ryh
    ryh
    Jan 22, 2022
    12
    不能离线的都用处不大,也不安全。
    当然你可能会说,你不关心隐私,但你不在乎隐私也不在乎其他用你服务的用户的隐私?
    liuxu
    liuxu
    Jan 22, 2022 via Android
    13
    @likeunix #11 项目本身是很优秀的
    GG668v26Fd55CP5W
    GG668v26Fd55CP5W
    Jan 22, 2022
    14
    版权战士真的恶心
    tuwulin365
    tuwulin365
    Jan 22, 2022
    15
    这是把真彩色压成索引色了?
    jh163888
    jh163888
    Jan 22, 2022 via Android
    16
    @stille 你还折腾了好久😂
    3dwelcome
    3dwelcome
    Jan 22, 2022 via Android
    17
    @tuwulin365 是的,这就是所谓 tinypng 的秘诀,我也是醉了。
    我就希望保存真彩色,自动转索引色也太伤了。
    MacDows
    MacDows
    Jan 22, 2022 via Android❤️1
    18
    wangxn
    wangxn
    Jan 22, 2022❤️1
    19
    cht
    cht
    Jan 22, 2022
    20
    @shidianxia #10 长期目测下来 imageoptim slowest 的压缩率不如 tinypng ,且后者稍微快一点
    kirile
    kirile
    Jan 22, 2022
    22
    我也写过一个 免费的虽然没大小限制但是有数量限制, 500 张 /月. 之前压缩安卓里的图片的时候, 一会配额就没了, 还借了个别人的号才压完
    sbmzhcn
    sbmzhcn
    Jan 22, 2022
    23
    https://pngquant.org/ pngquant 远远达不到 tinypng 的压缩率,虽然它本身很优秀的,但 tinypng 压缩后的都比 pngquant 小,不知道 tinypng 用了什么算法,总是压缩成最小的。
    likeunix
    likeunix
    OP
    Jan 22, 2022 via Android
    24
    @kirile 是的,也就是个人偶尔用下,不能大规模商用,商用要 pro 版
    muzuiget
    muzuiget
    Jan 22, 2022❤️1
    25
    @liuxu Github 的仓库地址中用户名已经是 namespace 了,哪里还有人会觉得是官方,自己的名字下项目爱用什么名字都行,只要用户名碰瓷官方名才有可能误导别人。
    iFrey
    iFrey
    Jan 22, 2022
    26
    TinyPNG 我使用好多年了,同样画质体积最小,同样体积画质最好
    leonard916
    leonard916
    Jan 22, 2022
    27
    @maplerecall LimitPNG +1 虽然好久不更新了
    zhangshine
    zhangshine
    Jan 22, 2022
    28
    目前用的 pngquant ,虽然没有 tinypng 小,但是足够了。
    cvooc
    cvooc
    Jan 22, 2022
    30
    说到这个我之前也用 electron 做了一个自用的压图工具,调的 imagemin 库,偶尔用来压图还蛮不错的

    https://github.com/ShowMeBaby/electron-imagemin-tools
    AthensBird
    AthensBird
    Jan 22, 2022
    31
    @zhangshine Tinypng 的质量损失比 Pngquant 大
    kkocdko
    kkocdko
    Jan 22, 2022 via Android
    32
    1. pngquant 是目前最先进的 PNG 靠色工具,没有之一。详情请见 https://pngquant.org 。最近作者改进了算法,使用 Rust 重写,用类似算法对 GIF 也做了类似的优化。
    2. pngquant 有许多参数可调,需要自行权衡质量,体积与算力。上边许多层主没有控制变量的比较,无异于"360 压缩-LZMA vs 7-zip-deflate",是没有可比性的。
    3. 目前已知最强的 PNG 压缩方案是:pngquant 有损靠色 + zopflipng 无损压缩。
    3. 题主这样一个调用 TinyPNG API 的工具,怎么说呢,从技术上来讲确实没有太大的突破。已经有更多更优秀的方案了。
    icyalala
    icyalala
    Jan 22, 2022❤️1
    33
    @kkocdko 大厂做移动开发的,总会遇到需要优化包大小的时候。
    UI 素材至少我们尝试过非常多的方法,包括 ImageOptim 里面那些有损和无损方法,其中就有 pngquant 。
    无损压缩即使优化级别再高,体积离 TinyPNG 都差很远;有损压缩在设计同学可接受的范围内,基本上体积都还是不如 TinyPNG ,而且压缩太过消耗时间。
    superfatboy
    superfatboy
    Jan 22, 2022
    34
    有什么不需要第三方 api 的,推荐一个啊
    likeunix
    likeunix
    OP
    Jan 22, 2022 via Android
    35
    @superfatboy 你看看上边的评论啊
    lemonda
    lemonda
    Jan 22, 2022❤️1
    36
    这个对我非常有用
    kkocdko
    kkocdko
    Jan 23, 2022
    37
    @icyalala

    首先指出一点:我前边的表述可能有歧义,第 3 点的意思是 先 pngquant 后 zopflipng ,而不是分别进行。

    我刚刚测试了一下,确实很难评判 TinyPNG 和 pngquant 2.17.0+zopfli 的胜负。我发现 TinyPNG 更偏向保持过渡(阴影)的连续性,而 pngquant 更偏向保持原本的颜色,于是就更容易出现断层。这可能是你认为 TingPNG 效果更好的原因之一,毕竟前端素材很多都带有阴影和渐变。

    (当然这只是猜测,TinyPNG 不开源,啥也看不到)

    “压缩太过消耗时间”,我不太理解你的意思,是说 zopfli 很慢么?我已经说过了,调参自行权衡,我猜测 TinyPNG 使用了较弱参数 zopfli ,因为测试发现 TinyPNG 处理后依然可以用默认预设 zopfli 压榨出一点点体积。
    Maskeney
    Maskeney
    Jan 23, 2022
    38
    不过还是不懂为什么一个调用 API 的压缩图片的软件上来就要管理员权限

    kkocdko
    kkocdko
    Jan 23, 2022
    39
    @Maskeney 这是安装程序,你可以直接拆包。
    likeunix
    likeunix
    OP
    Jan 23, 2022 via Android
    40
    @Maskeney 安装的时候需要管理员,安装完运行不需要管理员,或者你也可以自己编译源码。
    xianqin
    xianqin
    Jan 23, 2022 via Android
    41
    忍不住又想一起卷。虽然写好后就丢那不更新了
    https://imagetool.app/ 离线压缩,不限无制
    xianqin
    xianqin
    Jan 23, 2022 via Android
    42
    @xianqin 离线压缩,无限制
    Maskeney
    Maskeney
    Jan 23, 2022
    43
    @kkocdko
    @likeunix

    晓得了,不过之前用过一些软件安装包是先问安装给所有用户还是仅当前用户,前者再提权,后者就直接无管理员权限安装了
    dudor
    dudor
    Jan 23, 2022
    44
    转换为 webp 格式也不错,前几天写的批量转换脚本。
    https://gist.github.com/dudor/979378c18dc07e7b599c737c6120bd9b
    preach
    preach
    Jan 23, 2022
    45
    标题 带个基于就好 tinypng
    likeunix
    likeunix
    OP
    Jan 23, 2022 via Android
    46
    @preach 嗐,现在没法改了😅
    ragnaroks
    ragnaroks
    Jan 23, 2022
    47
    @likeunix 可以用 msix 打包器生成“适用于当前用户的无依赖无残留”的安装器,具体效果就如同 vscode 的安装器,无特权默认安装到 C:\Users\*\AppData\Local\Programs
    likeunix
    likeunix
    OP
    Jan 24, 2022 via Android
    48
    @ragnaroks 好的,最近试试
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   774 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 23:12 · PVG 07:12 · LAX 15:12 · JFK 18:12
    ♥ Do have faith in what you're doing.