Skip to content

tail258/Splicer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Splicer

Splicer

本地图片竖直拼接工具,支持 PNG / JPG 输入,导出 PNG 或 PDF。

MIT License Node Electron Windows

桌面窗口

拖入图片、调整顺序、选择输出路径、设置格式和 PDF 分页模式。

命令行

保留 CLI 能力,适合脚本化批处理和自动化工作流。

无损优先

不缩放、不重采样;PNG 输出保留解码后的像素,PDF 导出尽量逐张嵌入。

大图友好

核心基于 sharp / libvips,避免浏览器 canvas 这类容易触顶的路径。

功能

  • 支持 PNG、JPG、JPEG 输入。
  • 支持竖直拼接,宽度不一致时可左对齐、居中或右对齐。
  • 支持 PNG 和 PDF 输出。
  • PDF 支持单个超长页或按目标高度分页。
  • 桌面窗口支持拖放、排序、删除、输出位置选择。
  • 自动尊重 JPG 的 EXIF 方向,并支持额外 90 / 180 / 270 度方向修正。
  • CLI 支持 dry-run 预估输出尺寸。

安装

npm install

启动窗口版

npm 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 center

PDF 分页:

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> 显式指定 pngpdf
--align <align> 宽度不一致时的水平对齐,支持 leftcenterright
--rotate <degrees> 在自动 EXIF 方向后额外旋转,支持 090180270
--background <color> 补齐区域背景,支持 transparentwhiteblack#rgb#rrggbb
--pdf-mode <mode> single 输出单个超长页,pages 按高度分页但不裁切单张图片。
--pdf-page-height <pixels> pages 模式下每页目标高度。
--dry-run 只计算拼接尺寸,不写出文件。

打包 Windows EXE

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 打包

许可证

MIT

About

自用图片拼接工具

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors