返回目录
开源项目其他开源工具类新手

Pic Smaller (图小小)

Pic Smaller 是一款免费开源的浏览器端批量图片压缩工具,支持 JPEG、PNG、WebP、GIF、SVG、AVIF 等格式的智能压缩,以及 HEIC/HEIF 本地解码、格式转换、缩放裁剪等功能。所有处理通过 Web Workers、WebAssembly、Canvas 和浏览器编解码器在本地完成,图片不会上传到服务器,完全保护隐私。

0 次阅读2026/08/17 发布
Pic Smaller (图小小) 来源图片

社区作者 · zZz

它解决什么问题

Pic Smaller (图小小) 是一个完全在浏览器中运行的免费开源批量图片压缩器。核心功能包括:批量压缩 JPEG、PNG、WebP、GIF、SVG 和 AVIF 图片;支持本地解码 HEIC/HEIF 并导出为 JPEG、PNG、WebP 或 AVIF;可进行格式转换、调整大小、裁剪以及控制编码质量;支持通过文件选择器、文件夹选择器、拖拽或剪贴板粘贴导入图片。界面提供原图与压缩结果交互式分屏对比,可下载单个结果或将整个批次保存为 ZIP 压缩包。

由于图像处理完全依赖浏览器本地能力(Web Workers、WebAssembly、Canvas 和浏览器编解码器),用户图片不会离开设备,隐私安全性高。配图 1 展示了核心工作区,结合了批量输入、压缩结果、输出设置和下载操作。项目还提供 Pic Smaller Desktop 旗舰桌面版,支持更多图片格式、处理大型文件和文件夹库,并集成了背景移除、水印移除和高保真图像放大等 AI 工具。项目使用 MIT 许可证,适合 Web 开发者、设计师、内容创作者以及任何需要高效批量压缩图片并注重隐私的用户。

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

本指南适用于希望自行部署或开发 Pic Smaller 的开发者,也适用于希望了解本地运行方式的普通用户。

环境要求:

  • Node.js 22 LTS 或更新版本
可复制命令
npm 10 或更新版本

开发环境安装与运行步骤:

  1. 克隆仓库:
命令
git clone https://github.com/joye61/pic-smaller.git
  1. 进入项目目录:
命令
cd pic-smaller
  1. 安装依赖:
命令
npm ci
  1. 启动开发服务器:
命令
npm run dev

常用命令:

可复制命令
npm test:运行测试套件
可复制命令
npm run lint:运行 ESLint
可复制命令
npm run build:构建独立 Node.js 服务器
可复制命令
npm run build:pages:导出静态 Cloudflare Pages 站点到 out/ 目录

部署说明:

Cloudflare Pages(公开站点方式):

  • 生产分支:master
  • 预览分支:develop

构建命令:

可复制命令
npm run build:pages
  • 输出目录:out
  • Node.js 版本:22
  • 推送 master 更新生产环境,推送 develop 创建预览部署,其他分支不会自动部署。
  • Pages 构建会移除 Next.js 生成的顶层 404.html,以让 Cloudflare Pages 使用原生的单页应用回退机制。
可复制命令
Docker

(私有或自托管方式):

  1. 构建镜像:
命令
docker build --pull -t pic-smaller:latest .
  1. 运行容器:
命令
docker run -d \

--name pic-smaller \ --restart unless-stopped \ --read-only \ --tmpfs /tmp:rw,noexec,nosuid,size=64m \ --cap-drop ALL \ --security-opt no-new-privileges \ -p 127.0.0.1:3000:3000 \ pic-smaller:latest

  1. 打开 http://127.0.0.1:3000 访问。如需公网访问,应将容器置于 TLS 终止反向代理(如 Caddy、nginx 或 Traefik)之后;仅当有意直接暴露网络时才移除 127.0.0.1: 绑定前缀。

密钥与配置:

  • Web 应用不需要 API 密钥。切勿提交凭据、Cloudflare tokens、.env 文件、.dev.vars、私钥或本地 Wrangler 状态,仓库忽略规则已排除这些文件。
  • 如果未来功能需要密钥,应存储在部署平台的密钥管理器中,并仅在 .env.example 文件中提供文档化的占位名称。

项目结构:

  • src/app/:Next.js 应用入口
  • src/components/:可复用界面组件
  • src/engines/:浏览器编解码器、workers、变换和压缩队列
  • src/locales/:翻译文件
  • src/views/:应用视图
  • public/:构建时准备的浏览器编解码器和 WebAssembly 资源
  • scripts/:编解码器准备和部署构建辅助脚本
  • tests/:Node.js 测试套件

贡献指南:

  • 从 develop 分支创建新分支。
  • 运行 npm test、npm run lint 以及相应生产构建。
  • 当行为或界面变化时更新文档和截图。
  • 提交聚焦的 Pull Request,并附带清晰描述和验证说明。

常见问题:

  • 浏览器兼容性:需要使用支持 Web Workers、WebAssembly、Canvas 和现代浏览器编解码器的浏览器。
  • 私有部署时如需公网访问,请务必配置 TLS 反向代理并限制端口暴露。

来源教程配图

Pic Smaller compressor workspace
配图 1 · Pic Smaller compressor workspace查看原图

适用场景

在浏览器中批量压缩 JPEG
PNG
WebP
GIF
SVG
AVIF 图片
适合网页优化和日常图片处理
本地解码 HEIC/HEIF 照片并导出为 JPEG
WebP 或 AVIF 格式
批量转换图片格式
调整尺寸
裁剪和精细控制编码质量