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

唉,一年了无人问津,开源算了

  •  8
     
  •   joye · 15 天前 · 15020 次点击

    最近重构了我的个人项目图小小( Pic Smaller ),无论是技术上还是 UI 上都进行了重构,改动巨大,这次我决定完全开源它( Github 地址在文末)。因为之前跑了一年几乎无人问津,它一直是一个完全免费项目,没有广告,没有打赏,甚至联系方式都没有,做成这个样子属实让人很不甘,所以干脆完全开源算了,希望能吸引一些关注,先看看新版本预览效果:

    图小小是一个图片压缩工具,基于 Vite+React 技术栈开发,它可以完全取代类似 TinyPNG 之类的在线图片压缩工具,且压缩之后视觉表现效果往往更好。但图小小有个更大的优势:通过图小小进行图片压缩完全是基于浏览器本地的,没有任何服务端交互,图片不会上传到远程服务器,所以非常安全,不用担心隐私图片被泄露。

    目前图小小支持 JPEG/PNG/WebP/Gif 四种格式的图片压缩,基本上能满足绝大部分日常使用需求,本项目为个人业务时间开发,为了节约时间,采用了大量的第三方开源项目,所以图小小本身是没什么技术含量的,我个人认为图小小优秀在于提供了良好的 UI 和使用体验,虽然是缝合怪,但鲜有人做出类似的产品

    技术实现

    • JPEG/WebP 压缩:利用了现代浏览器自带的功能,叫离屏渲染技术 OffscreenCanvas
    • PNG 压缩:采用了一个第三方的 Webassembly 实现,底层是 libPNG
    • Gif 压缩:采用了一个第三方的 Webassembly 实现,底层是 Gifsicle

    简单说一下技术实现,感兴趣的自行研究,不得不感谢 Webassembly 技术的加持,让 PNG/Gif 编解码这类 CPU 密集计算型需求在纯网页端实现成为了现实,并且还有不错的性能表现

    为了防止 UI 阻塞,运用了 Web Worker 技术进行编解码和压缩,同时为了防止同一时刻浏览器的内存占用过大(内存占用过大也会导致卡顿),用了一点小技巧在 Worker 端实现了一个简单的队列 Queue,这里不展开,有兴趣的自行研究源码

    部署实现

    网站部署在 vercel 上,主要原因是穷,所以初次访问速度会有一定的影响,国内其实大部分地区已经屏蔽了 vercel ,为了让国内用户也能访问,不得已通过 Cloudflare 做别名解析了 txx.cssrefs.com 这个域名。这里要强烈推荐个人开发者采用国外的解决方案,这个网站除了域名(域名是以前在腾讯云买的),其他证书服务器等都是免费的,感谢万恶的资本主义

    不足之处

    由于图小小是纯本地执行,因而不同的电脑配置会有不同的压缩表现,实测批量压缩成百上千张图片会有明显的卡顿甚至浏览器崩溃现象。这是正常的,由于没有任何限制,使用本工具可能会导致浏览器耗尽 CPU 和内存资源,所以使用时请自行评估


    项目地址:https://github.com/joye61/pic-smaller


    120 条回复    2024-05-28 12:53:27 +08:00
    1  2  
    EmbraceQWQ
        1
    EmbraceQWQ  
       15 天前
    https://www.toolcat.cloud/ 收录你的,感谢你的付出
    sfqtsh
        2
    sfqtsh  
       15 天前 via Android
    我的主手机 iPhone 刚好前几天在 app store 里买了个图片压缩的应用,一些拍的好多 M 的图片压缩后小了很多,质量看起来差不多。我觉得这类放在手机上需求更大点更能赚 money 吧
    Admstor
        3
    Admstor  
       15 天前   ❤️ 12
    1 使用 web 工具的用户往往不是隐私敏感型,你的纯浏览器处理模式与同类产品并无明显优势

    2 界面复杂明显并没有做到简单易用。从用户角度看,当我需要用压缩的时候,往往是要么体积或者分辨率的限制,所以其实对这些用户,他们需要的是,我上传一个照片,你返回一个符合我要求的压缩后照片,而不是让我选所谓的压缩率等等参数

    3 批量处理用户会选择更专业的软件,而不是选择 web 工具

    4 你这个东西更适合作为某个比较大型的 web 项目,其中一个组件,指望赚钱或者广告流量,你除非做个站点,全都是类似的 web 工具库,才有可能。但是说实在的,竞争压力依然巨大,同样市场极小。
    lizhenda
        4
    lizhenda  
       15 天前
    确实很难商业化
    joye
        5
    joye  
    OP
       15 天前   ❤️ 72
    @Admstor 感谢建议,说的很对。我会抽时间优化功能,采纳你的建议,我今年 37 岁了,公司面临倒闭,马上要离开职场了,只想让自己以后能留下一点技术的回忆,这个工具太小,永远不为赚钱,只为有人使用,有人记得就足够
    angrylid
        6
    angrylid  
       15 天前 via Android
    如果流量达标了,光贴广告应该是能赚到钱的,进阶一点的话还可以搞社区和云存储等增值服务。

    不过第三方库为什么是以二进制加入到版本控制里的方式来管理?
    joye
        7
    joye  
    OP
       15 天前
    @angrylid Webassembly 技术
    osilinka
        8
    osilinka  
       15 天前
    推广不好吧, 记得一个人在 reddit 的 sideproject 推广类似的,一个月有几百美元的收入
    MaizerShuahu
        9
    MaizerShuahu  
       15 天前 via Android
    我经常有需求需要使用网站压缩图片,目前你做的网站对我来讲有一些体验上的问题
    1.一打开就要上传图片,不能进行我想要的质量设置
    2.一般我找网站压缩,都是求保质的,也就是说我期望压缩的更小,而质量可以接近原图,否则我用 ps 也可以搞定,而我使用了之后发现质量变化太大,无法达到预期
    syozzz
        10
    syozzz  
       15 天前
    感觉很像这个 https://squoosh.app/
    xhawk
        11
    xhawk  
       15 天前 via Android
    我最近有个跟这个相关的需求场景跟你分享,电商里头的图片管理,要解决 2 个问题,图片的存储管理,图片的打标签分类,你这属于高级功能,需要能对图片做基础编辑,因为亚马逊会对图片严格审核,需要能对图片的信息重新组织。
    TuTouPower
        12
    TuTouPower  
       15 天前
    @xhawk 可以联系,RmVpS2FpNjgyMw==
    wlf92
        13
    wlf92  
       15 天前
    有个产品叫 PP 鸭,我愿意付费,因为只要把文件夹拖进去就会遍历所有图片进行压缩了。
    题主可以借鉴一下他的设计和商业模式。
    BeijingBaby
        14
    BeijingBaby  
       15 天前
    挺好的,可自定义压缩率
    MillaMaxwell
        15
    MillaMaxwell  
       15 天前
    试用一下,感觉如果我想处理大量图片还是不够方便
    jisuowei
        16
    jisuowei  
       15 天前   ❤️ 1
    这就不得不提到以前公司做的 https://tuya.xinxiao.tech/
    InsideSeed
        17
    InsideSeed  
       15 天前
    已 star 支持
    sundev
        18
    sundev  
       15 天前
    star 支持
    abccccabc
        19
    abccccabc  
       15 天前
    兄弟,能不能 build 一个,我是做后端的,对压缩也挺感兴趣的。

    再去学一遍前端,可能性不大。
    zhuang0718
        20
    zhuang0718  
       15 天前
    为开源点个赞~
    zhangkui
        21
    zhangkui  
       15 天前
    star 支持
    googlehub
        22
    googlehub  
       15 天前
    已 star ,感谢楼主的开源,看着挺不错的,还可以有更多优化的空间,慢慢打磨下,更专业体验更好的方向试试呢。
    zhangyl
        23
    zhangyl  
       15 天前
    star 支持
    SunsetShimmer
        24
    SunsetShimmer  
       15 天前
    @abccccabc 用 Vercel 部署一下就可以吧,前端好像一般没有发布 build 的习惯
    daimao
        25
    daimao  
       15 天前
    不是 哥们 你这网站打开了连个功能介绍都没有 谁知道是干嘛的啊
    DefoliationM
        26
    DefoliationM  
       15 天前 via Android
    这种简单的东西其实很多都是自己写着玩玩,感觉很难火起来。
    c330
        27
    c330  
       15 天前
    兄弟,感觉你可以试着把它搞成插件的形式,然后上架卖出。(地址: https://www.zentao.net/redirect-index-24073.html)
    jellyX
        28
    jellyX  
       15 天前
    大佬加油
    ttyhtg
        29
    ttyhtg  
       15 天前 via Android
    加油
    c330
        30
    c330  
       15 天前
    moreant
        31
    moreant  
       15 天前
    支持批量真不错,之前都是用 squoosh.app ,只能一张一张压缩有点烦
    iorilu
        32
    iorilu  
       15 天前
    我也有个站点在 vercel , 能说说看怎么用 Cloudflare 加速国内访问吗
    theprimone
        33
    theprimone  
       15 天前
    好奇 OffscreenCanvas 怎么实现 JPEG/WebP 的压缩的,找个算法重绘 Canvas 再导出?
    seedhk
        34
    seedhk  
       15 天前
    已 star ,感谢楼主的开源
    me1onsoda
        35
    me1onsoda  
       15 天前
    @abccccabc 这也太伸手了吧。。这玩意还得叫人给你打包一份
    abccccabc
        36
    abccccabc  
       15 天前
    @me1onsoda
    @SunsetShimmer

    隔行如隔山呀,我主要写 php 的,不写前端 JS 。说实话,vue 都看得我一 meng 一 meng 的,现在又冒出一个 Vercel ,又是 react ,又是编译。

    算了,不扯了,不玩了。
    walkingmoonwell
        37
    walkingmoonwell  
       15 天前
    这样部署的话,那你这个域名是不是就不用备案了
    huihushijie1996
        38
    huihushijie1996  
       15 天前
    谢谢你开源的 我一直想自己弄一个。这下方便了 嘿嘿 谢谢了
    flyyu
        39
    flyyu  
       15 天前
    @xhawk 可以详细说说这个需求吗,我看下我的网站能不能做这种 cWl1eXUzMDNAZ21haWwuY29t
    skyworker
        40
    skyworker  
       15 天前
    正好需要在内网部署一个类似的工具, OP 可以放 buy me coffee 的二维码, 我愿意赞助
    zealotxxxx
        41
    zealotxxxx  
       15 天前
    压缩率很不错啊,而且看着很可以。
    不过产品对于有需求的轻量用户来说,还是偏复杂了。
    收藏了,这个挺好用的。比 tiny 还好点。
    dylan593
        42
    dylan593  
       15 天前   ❤️ 3
    看了一下该站点的域名是 19 年就开始使用的,下面是我作为 PM 给楼主一些优化建议:
    1. 简化用户操作步骤,让用户以上传图片——等待压缩——下载图片的工作流进行体验(可通过自行测试设置一个默认参数,保证压缩体积与图片质量的平衡);
    2. 优化板块布局,上传页面还可以,下载页面的下载按钮应突出展示,另外压缩的比例以及具体数值可以在下载按钮上方进行展示;
    3. SEO 优化,你的标题、元描述、关键词等内容都存在优化空间,另外爬虫文件也没设置,这样对于自然流量的获取会很吃亏;
    4. 营收点:通过数据分析了解用户上传图片的主要体积大小范围,设置分级收费制度,如 50M 以上的图片上传处理需要收费;
    以上是个人看完你的网站后的一些思路,希望对你有帮助。
    giyear
        43
    giyear  
       15 天前
    压缩图片绝大部分目的就是为了传播吧,你这个巨大的隐私优势完全无用武之地……
    AmaQuinton
        44
    AmaQuinton  
       15 天前
    op 有没有考虑通过 url 方式获取图像文件,例如 B 站的壁纸
    rlds
        45
    rlds  
       15 天前
    挺好的,支持!!!
    rookie2luochao
        46
    rookie2luochao  
       15 天前
    害,我也重复造了个新 swagger-ui 的轮子, 也是无人问津,还好我的 UI 设计和使用体验和其他竞争者大部分不一样,不然我真的好像是抄袭了,至少我没出圈我也不至于被吐槽吧😂,其实早就完成了 60%,但是没有设计成通用的开源包,我要是早 2 年放出来估计好很多,我给 swagger-ui 也成立了一个组织用于收录 所有后端语言的 swagger-ui, 链接在下面

    核心 UI 包: https://github.com/rookie-luochao/openapi-ui
    后端 swagger-ui 中间件: https://github.com/openapi-ui
    skyworker
        47
    skyworker  
       15 天前
    @giyear 为了传播的用户, 一般不会付钱

    比如商业用户, 需要保护图片隐私, 不会使用网络工具, 如果能够定制化(比如增加 AI 功能, 符合特定行业对图片处理的需求, 比如自动加用户水印之类), 我觉得商业化不是问题.
    Xinu
        48
    Xinu  
       15 天前
    很棒!
    chf007
        49
    chf007  
       15 天前
    squoosh 不香么,同类的还有很多种,这种工具太多了,没有什么特别的优点很难胜出
    LowBi
        50
    LowBi  
       15 天前
    支持 太难了 我想也让濒死/死亡项目开源 留下最后的痕迹
    polobug
        51
    polobug  
       15 天前
    另外你这个如果能在小程序 那才能获取流量。
    yuyuf
        52
    yuyuf  
       15 天前
    感觉稍微缺少的用户思维。
    1 、调整图片尺寸那里。适应宽度,适应高度、这些词,普通用户大概率是不知道什么意思的。
    2 、图片质量那里。可以就给几个选项就行了,
    等等,下面的那些参数,普通用户也基本都不知道是什么意思的。可以都设置为默认,隐藏起来。给个高级选项按钮,给专业人用。普通用户就用默认的就好了
    cndenis
        53
    cndenis  
       15 天前
    现在产品太难, 别说免费, 贴钱给用户人家都不见得会肯用.

    靠技术和功能来吸引用户真要做得非常独到才行

    这几年我在桌面上使用的新工具软件, 每年可能就一两个而已
    joye
        54
    joye  
    OP
       15 天前
    @dylan593 作者是个程序员,产品思维很缺,我会认真考虑你的建议,谢谢
    Grefer
        55
    Grefer  
       15 天前
    star 支持一下,加油
    joye
        56
    joye  
    OP
       15 天前
    @daimao 已采纳
    joye
        57
    joye  
    OP
       15 天前
    insignificance
        58
    insignificance  
       15 天前
    给你点个赞
    joye
        59
    joye  
    OP
       15 天前
    @AmaQuinton 当前技术无法实现,由于采用的 Vite ,它是一个非常纯粹的前端 SPA 项目,在技术上会存在 [跨域和画布污染]( https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image) 的问题,因为前面有人提到 SEO ,所以等有时间我会考虑用 nextjs 实现,就可以做到通过 URL 获取图像文件,但本质上是借助于服务器实现
    realJamespond
        60
    realJamespond  
       15 天前
    感觉可以考虑用 electron ,或 wails 实现,压图更多可能是要批量运行所以结果要实时写回本地
    likunyan
        61
    likunyan  
       15 天前
    有 bug ,我还是选择 tinypng
    sojson
        62
    sojson  
       15 天前
    ....要我拿吗,我拿必火
    yzding
        63
    yzding  
       15 天前
    在压类似 10kb 左右小图片的的时候,画质会变糊,压缩后的图片体积会增大
    xianqin
        64
    xianqin  
       15 天前
    又一个图片压缩,前两天刚看到一个,今天又个。
    https://www.v2ex.com/t/1040551
    joye
        65
    joye  
    OP
       15 天前
    @xianqin 😆 作者并没有发现。所以这个工具将永远开源并免费
    nuffin
        66
    nuffin  
       15 天前
    已 star
    IJustmaogepao
        67
    IJustmaogepao  
       15 天前
    点赞,已 star
    cloudzhou
        68
    cloudzhou  
       15 天前
    @joye
    这段很感慨,没想到互联网都变老人了
    ---
    感谢建议,说的很对。我会抽时间优化功能,采纳你的建议,我今年 37 岁了,公司面临倒闭,马上要离开职场了,只想让自己以后能留下一点技术的回忆,这个工具太小,永远不为赚钱,只为有人使用,有人记得就足够
    iniko
        69
    iniko  
       15 天前
    点赞,已 star
    server
        70
    server  
       15 天前
    star, 加油
    brookegas
        71
    brookegas  
       15 天前
    看了这个帖文,有点兔死狐悲的感觉
    码农成了跟维修工、木工、水电工类似的手工匠人
    程序员改变世界的时代已经过去了
    linyongxin
        72
    linyongxin  
       15 天前
    支持一下,这种桌面软件很多,我用的是洋芋田,好多年了。现在图片处理比较热门的就是 ai 抠图
    FakerLeung
        73
    FakerLeung  
       15 天前
    试用了一下,手机拍摄的图片压缩还可以,但是用了一张夜景图压缩,居然把灯给我压没了。。。再试了一张 gif ,那效果只能用惨不忍睹来形容。所有参数配置均为默认未调整
    chenzw2
        74
    chenzw2  
       15 天前
    https://online.bqrdh.com/image/compress 以前做过一个,楼主的更棒
    guanguans
        75
    guanguans  
       15 天前
    看到 37 岁自我感叹,破防了。已 star ,收录到 https://github.com/guanguans/favorite-link 中了。不过好像有点 bug 。

    ![]( https://img2.imgtp.com/2024/05/17/LbLD4Tx2.jpg)
    zzbd
        76
    zzbd  
       15 天前
    需求确实挺大,现在手机拍的图都太大了,再加几个小功能可能会更好,增加文字层,增加图片层(打码用),可以用简单标记。现在 edge 自带的编辑器用这还算顺手,就是缺一个打码功能。
    vimiix
        77
    vimiix  
       15 天前
    支持,感谢作者开源,已 star ,我做了个 docker 镜像,供搭建体验( Dockerfile 已提 PR )

    docker pull vimiix/pic-smaller
    iMusic
        78
    iMusic  
       15 天前
    已 star ,还没看源码。好奇,新大小/压缩率是预测值还是选择完就进行压缩操作?
    Tyrant1984
        79
    Tyrant1984  
       15 天前
    已 star ,之前一直用的是 pingo ,虽然超级方便但是它不支持 gif 压缩,官方说仅针对 png 图片开发,但实测 jpg 也行~~
    allenby
        80
    allenby  
       15 天前 via Android
    已 star
    wencaiwulue
        81
    wencaiwulue  
       15 天前
    做开源难哦。做开源已经三年了。https://github.com/wencaiwulue/kubevpn 项目还是起不来。难难。
    BQsummer
        82
    BQsummer  
       15 天前
    一直用 squoosh.app 竞品太多了
    lwc645089781
        83
    lwc645089781  
       15 天前
    https://squoosh.app/ 的好。up 的网站试了下,改了参数以后就卡住了。
    forty
        84
    forty  
       15 天前
    能做 AI 扩图就更好了
    ShaoLongFei
        85
    ShaoLongFei  
       15 天前
    感觉很不错啊
    fushall
        86
    fushall  
       15 天前
    楼主好厉害!千万不要放弃热爱的代码,念念不忘必有回想
    haikea
        87
    haikea  
       15 天前
    支持 op
    xz410236056
        88
    xz410236056  
       15 天前
    @sfqtsh 这玩意也能赚钱? 一句代码的事儿啊 image.jpegData(compressionQuality: 0.6) 这个方法基本无损,有损压缩的话就得重绘了
    diagnostics
        89
    diagnostics  
       15 天前
    图片对比很不错,UI 可以再优化(已经 80 分)了,默认参数降了色彩很差劲( 1 分),用户更多是拿来即用的,不符合要求再调参数
    xianqin
        90
    xianqin  
       15 天前
    @diagnostics
    同感。颜色数量低到这程度,从非技术型用户角度看就是 BUG 了
    R31
        91
    R31  
       15 天前
    支持已 star
    zw1one
        92
    zw1one  
       15 天前
    你做成 app ,或者公众号呀,手机用户对这个需求比较大。
    17681880207
        93
    17681880207  
       15 天前   ❤️ 1
    我一直在用 https://squoosh.app/
    但是图片压缩的需求其实并不是一个高频需求,不论从尤其是使用界面来手动压缩,这种情况真的很偶尔才会碰到。
    SunsetShimmer
        94
    SunsetShimmer  
       15 天前
    Star 了,好像没对移动端适配?
    rj
        95
    rj  
       15 天前
    已 Star
    Lamlam147
        96
    Lamlam147  
       15 天前
    感谢付出 已 star
    Nich0la5
        97
    Nich0la5  
       15 天前
    感谢 哎~这个方向商业化有点难
    binge921
        98
    binge921  
       15 天前
    感谢付出!
    rivenqinyy
        99
    rivenqinyy  
       15 天前
    Star.
    mioktiar56
        100
    mioktiar56  
       15 天前
    其实我也做了一个图片压缩软件,不过是客户端的,也是无人问津。无人问津我倒不奇怪,毕竟我没推广过,只在 V2EX 上面写了个帖子

    https://jiangxueqiao.com/post/2053741240.html
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2518 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 15:11 · PVG 23:11 · LAX 08:11 · JFK 11:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.