# 摄影作品一键成片
**Repository Path**: HelloDam/picture-demonstration-video
## Basic Information
- **Project Name**: 摄影作品一键成片
- **Description**: 帮助摄影爱好者们快速将自己得意照片制作成美观的演示视频
- **Primary Language**: Unknown
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2026-02-27
- **Last Updated**: 2026-03-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 一键成片
一款基于 Electron 的桌面工具,用于帮助摄影爱好者将拍摄得比较满意的照片快速生成带片头、模板样式、背景音乐的视频作品。
生成的成品可以参考如下:https://www.bilibili.com/video/BV1pyAazWEWe/
软件可以直接下载: https://pan.baidu.com/s/1YhYVyFrk-iKUYF-aC7yQcQ?pwd=2ij6 提取码: 2ij6
如果觉得网盘下载慢,也可以添加作者微信免费获取软件:a1752663772
【使用流程】
1. 新建任务
2. 导入照片
3. 选择照片模板和字体
4. 设置片头样式
5. 配置背景音乐
6. 预览并导出
## 功能概览
- 多任务管理:可创建多个任务,分别维护照片、参数和音乐配置
- 照片管理:
- 批量导入(JPG/JPEG/PNG/WEBP)
- 拖拽排序、右键按序号移动、随机打散
- 每张照片可单独编辑标题
- 模板系统:
- 简约模式(无边框无信息)
- 边框模式(白色边框)
- 标题模式(标题+边框)
- 完整模式(标题+边框+EXIF)
- 尼康水印-标题版
- 尼康水印-经典
- 字体系统:
- 标题字体可选(自动读取 `static/fonts`)
- 片头标题字体可单独设置
- 片头系统:
- 照片列滚动
- 照片快速切换(高级过渡)
- 片头标题与标题转场风格
- 自定义片头文字与行间隔
- AI 自动命名(千问):
- 可在界面填写 API Key 与 Prompt
- 按照片生成多个候选名,逐张选择应用
- 背景音乐:
- 内置音乐 + 本地音乐混用
- 预览与编辑(独立编辑窗口)
- 项目能力:
- 导出/导入项目文件(`.pdv`)
- 缓存清理
- 视频预览与最终导出
## 技术栈
- Electron 28
- Node.js
- FFmpeg(`fluent-ffmpeg` + `ffmpeg-static`)
- Sharp(图像处理)
- ExifReader(EXIF 读取)
- electron-store(本地持久化)
## 环境要求
- Node.js 18+(建议 Node.js 20)
- npm 9+
- Windows(主打)/ macOS(配置中包含 dmg 目标)
## 快速开始
```bash
npm install
npm start
```
## AI 自动命名(千问)配置
千问apikey获取方式:https://bailian.console.aliyun.com/cn-beijing/?spm=a2c4g.11186623.0.0.6350707fKNOmAm&tab=model#/api-key
## 打包
```bash
npm run build
```
安装包在`dist/`下面,运行 一键成片 1.0.0.exe 即可
## 项目结构
```text
.
├─ main.js # 主进程:IPC、渲染流程、FFmpeg 拼接、缓存、打包相关逻辑
├─ preload.js # 安全桥接 API(renderer <-> main)
├─ renderer.js # 主界面业务逻辑
├─ index.html # 主界面
├─ editor.html # 预览/音频编辑界面
├─ editor.js # 音频编辑逻辑
├─ static/
│ ├─ fonts/ # 标题字体资源
│ ├─ logo/ # 品牌 Logo 资源
│ └─ songs/ # 内置音乐资源
└─ dist/ # 打包输出目录
```
## 常见问题
### 1. `npm run build` 看起来卡住
打包阶段在压缩 portable 可执行文件时可能长时间无输出,但不一定是卡死。可检查:
- `dist/` 下 `.exe` 文件体积是否持续变化
- 进程中是否仍有 `node`/`electron-builder` 在运行