Pic Smaller 本地部署:压缩图片、转换格式,再搭建自己的 Web 工具

Pic Smaller 本地部署:压缩图片、转换格式,再搭建自己的 Web 工具

前言

图片体积这件事,平时不太容易注意,真正碰到限制时才会变得麻烦。

做 PPT 时,一份文件因为几张原图迅速涨到几十 MB;网页里放了高分辨率素材,打开速度明显变慢;临时发邮件、传社交平台,又遇到大小限制。很多时候并不需要重新修图,只是希望把文件缩小一些,同时尽量保留原来的观感。

Pic Smaller 就是围绕这一步来做的开源图片压缩工具。它可以直接在网页中处理图片,也可以自己把项目部署到本机或服务器。本文先从本地使用体验开始,再实际完成 Node.js 环境部署、源码运行和 Docker 启动;如果后续还希望从其他网络访问自己部署的页面,再通过 cpolar 增加公网入口。

整篇关注的是一个很具体的使用链路:图片怎么压、项目怎么自己跑起来、需要外部访问时再怎么继续。

1.Pic Smaller是什么?

Pic Smaller是一款完全免费、无需安装、无需注册的在线图片压缩工具。它的使用逻辑比较直接:把图片拖入页面,完成压缩后再下载结果,不需要先学习复杂参数。

主要能力:

  • 压缩处理:上传图片后直接进行压缩,适合临时缩小文件体积
  • 尽量保留画面细节:压缩的目标是在文件变小的同时尽可能减少肉眼可见的画质变化
  • 支持多格式:JPEG、PNG、WebP等主流图片格式均可处理
  • 隐私说明:原文说明压缩过程由浏览器或服务端自动完成,图片不会被存储或泄露,实际使用时仍建议结合项目说明和隐私政策确认
  • 操作步骤少:打开网页 → 拖入图片 → 下载结果

比较常见的使用场景:

  • 微信/小红书/微博等平台发布前缩小图片体积
  • 制作PPT、简历、PDF时控制文件大小
  • 网站开发时压缩图片素材,减少页面加载负担
  • 邮件或聊天发送图片前进行简单处理

如果只是临时压几张图片,在线版已经够用;如果希望长期使用、自己维护,或者部署在 NAS / 家庭服务器上,再继续看下面的本地部署部分。

2.在本地部署Pic Smaller

2.1部署前提

安装Node.js

  1. 访问Node.js官网:
  2. 下载推荐版本。
  3. 按照电脑上的步骤完成安装。
  4. 要验证安装情况,打开命令提示符并执行以下命令。如果输出了版本,说明你成功安装了Node.js。
shell 复制代码
node -v

2.2开始部署

从GitHub克隆项目源码:

shell 复制代码
git clone https://github.com/joye61/pic-smaller.git

切换到当前工作目录:

shell 复制代码
cd ./pic-smaller

安装项目依赖:

shell 复制代码
npm install

启动开发模式:

shell 复制代码
npm run dev

可以根据上面网址打开网站:

页面能够正常打开,说明当前开发模式已经启动成功。

如果你想在自己的服务器上独立部署这个项目,也可以使用docker一键部署:

shell 复制代码
docker build -t picsmaller .

docker run -p 3001:3001 -d picsmaller

2.3简单使用Pic Smaller

本地页面启动后,可以直接拖入图片进行压缩。这里先观察文件体积变化,再结合图片内容判断压缩后的清晰度是否满足实际用途。

除了压缩本身,项目还支持不同图片格式处理,支持JPG、JPEG、PNG、WEBP、GIF、SVG、AVIF格式图片压缩。

压缩时也可以选择输出图片格式。

原文说明所有操作均在本地浏览器完成,绝不上传服务器。压缩完成后可以直接下载处理结果。对于比较在意隐私的图片,这一点也是本地部署方案更值得关注的原因之一。

本地部署完成以后,Pic Smaller 默认还是本机或局域网服务。如果只在当前电脑、家里或公司内网使用,到这里已经可以结束配置。

如果希望把它放在 NAS 或家庭服务器上,并让其他网络中的设备也能访问,再继续处理公网这一层。下面使用 cpolar 为当前服务增加外部访问入口,Pic Smaller 本身的压缩流程和项目配置不需要因此改变。

3.安装cpolar补充公网访问

前面的 Pic Smaller 已经能够在本地运行,这一部分只解决"其他网络能不能打开这个页面"的问题。

cpolar 用来把本地正在运行的服务映射为公网访问地址。开始之前,先确认本地页面本身能够正常打开,这样后续如果公网访问异常,更容易判断问题出在哪一层。

以下继续按照原有安装步骤配置 cpolar:

使用一键脚本安装命令:

shell 复制代码
sudo curl https://get.cpolar.sh | sh

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

shell 复制代码
sudo systemctl status cpolar

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://localhost:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

4.配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理------创建隧道:

  • 隧道名称:可自定义,本例使用了:pic,注意不要与已有的隧道名称重复

  • 协议:http

  • 本地地址:3000

  • 域名类型:随机域名

  • 地区:选择China Top

创建成功后,打开左侧在线隧道列表,可以看到刚刚生成的公网地址。此时可以换到其他网络中的电脑或移动设备进行一次访问测试。

页面能够正常打开,说明当前公网地址已经可以访问本地部署的 Pic Smaller 页面。

5.保留固定公网地址

使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我这里演示使用的是picc,大家可以自定义。填写备注信息,点击保留。

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理------隧道列表,找到所要配置的隧道picc,点击右侧的编辑

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

最后,再使用配置后的固定公网地址访问一次。页面能够正常打开,说明二级子域名已经绑定到当前隧道,后续可以继续使用这个固定入口,而不必依赖前面的随机地址。

总结

Pic Smaller 解决的是一个很具体的问题:当原图体积偏大时,先在不改变使用场景的前提下把文件压小,再决定是否需要进一步处理。

如果只是偶尔压图,直接使用在线页面最省事;如果希望自己掌控运行环境,可以按照本文的 Node.js 流程启动源码,也可以使用 Docker 部署。项目本地运行以后,压缩、格式转换和下载都仍然围绕同一个 Web 页面完成。

需要注意的是,本地部署和公网访问是两件不同的事。Pic Smaller 负责图片处理,cpolar 只负责把本地页面增加到局域网之外的访问路径。如果没有异地访问需求,完全没必要继续配置公网入口;如果准备长期从外部访问,再使用固定二级子域名减少地址变化带来的麻烦。

所以整套流程其实可以按需求停在不同阶段:

  • 只想临时压图:直接使用在线版;
  • 想自己运行:部署本地版;
  • 想让其他网络访问:再增加公网入口。

比起强调"压得多小"或者"绝对无损",实际使用时更值得关注的是两件事:压缩后的清晰度是否满足当前用途,以及处理方式是否符合自己对隐私和部署位置的要求。

相关推荐
hunterandroid1 小时前
Android ANR 排查实战:从线上告警到主线程卡点定位
android·前端
千桐科技1 小时前
qData 开源版数据中台 v1.6.2 上线:修复数据连接、元数据与项目管理等多项问题
大数据·开源·数据治理·数据可视化·数据中台·元数据·qdata
RSABLOCKCHAIN1 小时前
打造工业级多智能体量化交易闭环:基于 Alpaca、LangGraph 与双轨执行的智能投资与持仓治理系统
人工智能·python·ai·aigc
图扑软件1 小时前
下篇・换墨|主题/多语言/移动端,一套组件全覆盖
前端·javascript·ui·性能优化·数据可视化
程序员老赵2 小时前
Docker 部署 TeX Live:轻松搭建 LaTeX 论文排版编译平台
前端·docker·latex
Zhu7582 小时前
部署安全的pg数据库,搭配pgadmin实现web界面管理
前端·数据库·安全
杉氧2 小时前
打破边界(二):在 React Native 中嵌入原生 UI 组件 (Native UI Components)
android·前端·react native