|
拖入图片、调整顺序、选择输出路径、设置格式和 PDF 分页模式。 |
保留 CLI 能力,适合脚本化批处理和自动化工作流。 |
|
不缩放、不重采样;PNG 输出保留解码后的像素,PDF 导出尽量逐张嵌入。 |
核心基于 sharp / libvips,避免浏览器 canvas 这类容易触顶的路径。 |
- 支持 PNG、JPG、JPEG 输入。
- 支持竖直拼接,宽度不一致时可左对齐、居中或右对齐。
- 支持 PNG 和 PDF 输出。
- PDF 支持单个超长页或按目标高度分页。
- 桌面窗口支持拖放、排序、删除、输出位置选择。
- 自动尊重 JPG 的 EXIF 方向,并支持额外 90 / 180 / 270 度方向修正。
- CLI 支持 dry-run 预估输出尺寸。
npm installnpm run start:gui窗口布局:
| 区域 | 用途 |
|---|---|
| 左侧概览 | 显示图片数量、输出尺寸、当前格式,并提供添加与清空操作。 |
| 中间队列 | 拖入图片、查看文件尺寸、调整顺序、移除单张图片。 |
| 右侧导出 | 设置 PNG / PDF、对齐方式、方向修正、背景、PDF 模式和保存路径。 |
导出 PNG:
npm start -- a.png b.jpg c.png --out dist/joined.png导出 PDF:
npm start -- a.png b.jpg c.png --out dist/joined.pdf居中拼接:
npm start -- a.png b.jpg c.png --out dist/joined.png --align centerPDF 分页:
npm start -- a.png b.jpg c.png --out dist/joined.pdf --pdf-mode pages --pdf-page-height 14400整批额外右转 90 度:
npm start -- a.png b.jpg c.png --out dist/joined.png --rotate 90只预估尺寸:
npm start -- a.png b.jpg c.png --out dist/joined.pdf --dry-run| 参数 | 说明 |
|---|---|
--out <file> |
输出文件,扩展名为 .png 或 .pdf。 |
--format <format> |
显式指定 png 或 pdf。 |
--align <align> |
宽度不一致时的水平对齐,支持 left、center、right。 |
--rotate <degrees> |
在自动 EXIF 方向后额外旋转,支持 0、90、180、270。 |
--background <color> |
补齐区域背景,支持 transparent、white、black、#rgb、#rrggbb。 |
--pdf-mode <mode> |
single 输出单个超长页,pages 按高度分页但不裁切单张图片。 |
--pdf-page-height <pixels> |
pages 模式下每页目标高度。 |
--dry-run |
只计算拼接尺寸,不写出文件。 |
npm run package:win打包产物位于:
release/Splicer-0.1.0-win-x64.exe
npm test
npm run smoke:gui展开说明
PNG 输出会保留输入图片解码后的像素,不缩放、不重新采样。JPG 本身已经是有损格式,因此这里的无损指 Splicer 不再额外降低像素质量。
JPG 手机照片常用 EXIF Orientation 表示显示方向。Splicer 默认会按 EXIF 方向读取尺寸和导出;如果图片已经被其他软件改坏方向,可以在窗口里使用“方向修正”,或在 CLI 里使用 --rotate 90 这类参数。
PDF 输出会把图片按原始像素尺寸放入页面,不为了 PDF 导出而重新采样。JPG 通常可直接作为 PDF 图像对象承载,PNG 以无损方式嵌入。
“不限大小”在工程上应理解为不设置业务尺寸上限,实际仍受磁盘、操作系统、输出格式、PDF 阅读器和图像编码器限制。超长输出推荐优先使用 PDF,或使用 --pdf-mode pages 分页。
| 模块 | 用途 |
|---|---|
| Electron | 桌面窗口与本地文件对话框 |
| sharp / libvips | 图片尺寸读取和 PNG 拼接 |
| PDFKit | PDF 页面生成与图片嵌入 |
| commander | CLI 参数解析 |
| electron-builder | Windows EXE 打包 |