用Docker部署PicSmaller图片压缩工具
在日常生活中,我们常因图片文件过大而无法上传至某些网站,这时就需要对图片进行压缩处理。今天为大家推荐一款免费开源的在线图片压缩工具:Pic Smaller。
它支持Docker独立部署,基于Vite + React开发,拥有直观的界面和良好的移动设备适配性,还能进行压缩配置。由于采用纯本地压缩方式,没有任何服务器端逻辑,所以使用起来非常安全。
这款工具具备诸多实用功能,可智能压缩JPEG、PNG、WEBP、AVIF、SVG和GIF等多种格式的图像,支持批量添加图片和文件夹,提供丰富的压缩配置选项,还能比对压缩效果,并且支持国际化多语言,是一款非常好用的在线图片压缩工具。
具体操作
1.创建一个PicSmaller目录,用于存放/管理拉取的资源:
mkdir -p PicSmaller
2.拉取源码到PicSmaller目录
cd /自定义路径/PicSmaller && git clone https://github.com/joye61/pic-smaller.git
拉取失败解决方法
如果源码拉取失败,请手动将源码下载到PicSmaller目录,注意解压后命名为"pic-smaller"。
3.进入pic-smaller子目录
cd ./pic-smaller
4.启动容器
因为在前面我们拉取的源码中,已经内置了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),且压缩后的图片与原图相比,肉眼几乎看不出有任何明显变化。