---
name: image-factory
description: 图像工厂 ImageFactory CLI:批量图片加水印/转格式/压缩/缩放/旋转,全程本机处理、自动剥离 EXIF。Node 20+ 运行。
---

# 图像工厂 ImageFactory CLI

批量图片处理命令行:加水印(文字平铺/单点)、旋转/翻转、格式转换(png/jpg/webp)、压缩、最长边缩放。复用与网页版/桌面版相同的处理核心(`@image-factory/core`),全程本机完成,**图片不上传**,输出自动剥离 EXIF(含 GPS)。

## 安装

```powershell
# 从仓库源码安装(需要 Node ≥ 20、pnpm ≥ 9)
git clone <image_factory 仓库> && cd image_factory
pnpm install
pnpm --filter @image-factory/cli build

# CLI 入口(bin 已注册,构建后可直接调用)
node packages/cli/dist/cli.mjs <command> [options]

# 或链接为全局命令
pnpm --filter @image-factory/cli link --global
image-factory <command> [options]
```

## 命令

### process — 批量处理

```powershell
# 目录内全部图片转 WebP,质量 80,最长边 1200,输出到 ./out
image-factory process --input ./photos --out ./out --format webp --quality 80 --max-edge 1200

# 平铺文字水印(防盗图),旋转 -30°
image-factory process --input ./photos --out ./out --watermark-text "@pinnadash" --wm-layout tile --wm-angle=-30

# 单张转换 + 居中单点水印 + 水平镜像
image-factory process --input a.png --out ./out --format jpg --quality 90 --watermark-text "@pinnadash" --wm-layout point --flip-h

# 多输入(逗号分隔)+ 旋转 90° + 输出文件名加后缀
image-factory process --input a.png,b.png --out ./out --rotate 90 --suffix "-r90"
```

选项速查:

| 选项 | 说明 |
| --- | --- |
| `--input` / `--out` | 输入(文件/目录,逗号分隔,目录递归)/ 输出目录(必填) |
| `--format` | webp(默认)/ jpg / png |
| `--quality` | 1-100,jpg/webp 有效(默认 85) |
| `--max-edge` | 最长边上限,等比缩小不放大 |
| `--rotate` / `--flip-h` / `--flip-v` | 旋转 90/180/270、水平/垂直镜像 |
| `--watermark-text` + `--wm-*` | 文字水印:layout(tile/point)、size、color、opacity、angle |
| `--suffix` | 输出文件名后缀 |

每张输出一行 JSON 风格对比:`源 → 输出 尺寸 原KB → 新KB (节省%)`;部分失败不影响其余,退出码非 0 时查看逐条错误。

## 已知限制

- 解码不读 EXIF 方向标记:带旋转标记的手机竖拍图,CLI 输出方向可能与网页版不一致(v1 限制)
- 图片水印(logo PNG)、调色、局部打码、favicon 生成目前仅在网页版/桌面版提供,CLI 后续补齐

## 相关

- 网页版(免安装,浏览器内处理):https://image-factory-bfx.pages.dev
- 账户/会员:https://account.pinnadash.com
