用Docker部署PicSmaller图片压缩工具
在日常生活中,我们常因图片文件过大而无法上传至某些网站,这时就需要对图片进行压缩处理。今天为大家推荐一款免费开源的在线图片压缩工具:Pic Smaller。
它支持Docker独立部署,基于Vite + React开发,拥有直观的界面和良好的移动设备适配性,还能进行压缩配置。由于采用纯本地压缩方式,没有任何服务器端逻辑,所以使用起来非常安全。

这款工具具备诸多实用功能,可智能压缩JPEG、PNG、WEBP、AVIF、SVG和GIF等多种格式的图像,支持批量添加图片和文件夹,提供丰富的压缩配置选项,还能比对压缩效果,并且支持国际化多语言,是一款非常好用的在线图片压缩工具。
具体操作
1.创建一个PicSmaller目录,用于存放/管理拉取的资源:
mkdir -p PicSmaller2.拉取源码到PicSmaller目录
cd /自定义路径/PicSmaller && git clone https://github.com/joye61/pic-smaller.git拉取失败解决方法
如果源码拉取失败,请手动将源码下载到PicSmaller目录,注意解压后命名为"pic-smaller"。
3.进入pic-smaller子目录
cd ./pic-smaller4.启动容器
因为在前面我们拉取的源码中,已经内置了Dockerfile脚本,所以我们只需要使用docker build命令构建镜像和docker run命令启动容器即可:
① 构建镜像:
docker build -t picsmaller .在执行该命令时,如遇npm报错也没事,等它跑完继续下一步即可。
② 启动容器:
docker run -p 3001:3001 -d picsmaller运行成功后浏览器地址输入:http://<服务器IP地址>:3001,即可访问PicSmaller服务。
PicSmaller的使用
我这里就以一张原大小为1.52MB的图作为演示:
压缩前:
自定义压缩配置:
压缩后:
若您认为该项目部署流程繁琐,或对工具的功能、操作体验不满意,亦或者不想用Docker来部署,那不妨试试以下纯前端手搓代码,同样可以实现图片压缩,同样安全高效~
免费在线图片压缩工具(纯前端代码)

Demo:在线体验
支持的格式
JPEG(.jpg/.jpeg)、PNG(.png)、GIF(.gif)、WebP(.webp)、BMP(.bmp)
工作原理:
前端通过Fetch API传输图片数据,后端利用ASP.NET Core接收文件并经ImageService压缩处理
成功返回200状态码,错误返回400。
使用说明:
① 使用时先上传图片,通过滑块在0%到100%间调节压缩质量
0%对应最小文件尺寸但质量最低,100%对应最大文件尺寸但质量最高,默认30%为文件大小与质量的平衡点,调节时可实时查看百分比
② 然后点击“上传并压缩图片”按钮,处理完成后右侧会显示压缩图
③ 最后点击“下载压缩图片”即可保存。
我们继续用前面大小为1.52MB的 PicSmaller.jpg 图片作为演示。
压缩后:
此时我们可以看到,经过压缩后的图片体积大小明显小了很多(压缩质量为12%时,压缩后的图片大小仅为29.86kb),且压缩后的图片与原图相比,肉眼几乎看不出有任何明显变化。

不错。sharex 我在想截图后 压缩完毕再传到r2.还是算了。我用的也少。
虽然多个流程 但可以节省很多空间呀 值得搞 (当然 如果不在乎图片大小 空间充裕 那就自由任性吧)
我就直接用别人的页面来完成自己的压缩了。最常用的就是事业单位登记管理平台中的那个图片压缩软件以及张鑫旭博客中的那个在线压缩页面。
常规图片还好 稍微私密一点的图片就显得不太友好了 我更偏向于能用自己的就尽量用自己的 自己的不行 那就用别人的
这个开源工具也挺好用:https://github.com/AkiraBit/PicSharp
嗯 确实不错 功能都大同小异
虽然不知道是不是试过的工具太少了,感觉压缩过的动图GIF演示效果明显下降了许多
这应该和用的程序压缩算法有关系吧 当然 压缩后和压缩前肯定是有差异的啊 不然我们干嘛压缩它 直接使用原图不好吗😂
我一般直接压缩完再传
现在很多服务器在上传图像资源时貌似都会压缩一点的 但效果不明显 压缩完再传也行 多个流程 但节省了资源成本
部署一套开源的“IT TOOLS”在线工具基本都有了。🙂
是啊
那倒是。。这些多功能在线工具挺吃带宽的说。如果不是专门用来提供服务的话,还是做有针对性的好。
需要什么就部署什么 针对性较强 一次性到位 很多东西都用不到 浪费资源了