# PixMark
**Repository Path**: 51diysoft/PixMark
## Basic Information
- **Project Name**: PixMark
- **Description**: PixMark 是一个基于 Python 开发的一体化图片处理工具箱,核心功能:给图片批量添加文字水印,并将图片合成为适合抖音/视频号/小红书等平台发布的竖屏 ,横屏MP4 视频。 支持命令行,桌面图形界面,以及web端功能;免费使用,可以自行克隆。
- **Primary Language**: Python
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-03-17
- **Last Updated**: 2026-03-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
🖼️ PixMark
一体化图片处理工具箱 —— 批量水印 · 图片转视频 · Web 可视化界面
[](https://www.python.org/)
[](https://flask.palletsprojects.com/)
[](LICENSE)
[](https://github.com/your-username/pixmark/pulls)
---
## ✨ 项目简介
**PixMark** 是一个基于 Python 开发的一体化图片处理工具箱,提供三种使用方式:
| 使用方式 | 适合场景 |
|----------|----------|
| 🖥️ **Web 界面** | 浏览器操作,可视化,支持多用户 |
| 💻 **命令行水印工具** | 批量自动化处理,脚本集成 |
| 🎬 **命令行视频合成工具** | 图片转 MP4,适配各平台尺寸 |
核心功能:给图片批量添加文字水印,并将图片合成为适合抖音/视频号/小红书等平台发布的竖屏 MP4 视频。
---
## 🚀 功能特性
### 🏷️ 图片水印
- **批量处理** — 一键处理整个目录,可递归子目录
- **文字水印** — 支持中英文,自动加载系统中文字体
- **九宫格定位** — 9 个方位任选(右下、居中、左上等)
- **平铺模式** — 全图铺满水印,自定义旋转角度和间距
- **样式自定义** — 字体大小、颜色(RGB / HEX)、透明度
- **保留目录结构** — 输出与输入目录层级完全对应
- **多格式支持** — JPG / PNG / BMP / WebP / TIFF
### 🎬 图片转视频
- **批量合成** — 图片按文件名顺序合成为 MP4
- **多平台预设** — 竖屏 9:16 / 横屏 16:9 / 方形 1:1,一参切换
- **淡入淡出** — 可选平滑过渡效果
- **自适应居中** — 等比缩放,不变形不裁切
- **高兼容输出** — H.264 + yuv420p,全平台播放器兼容
- **边下边播** — faststart 标记,手机端无需缓冲
### 🌐 Web 界面
- **拖拽上传** — 支持批量图片上传
- **实时进度** — 异步任务,轮询显示处理进度
- **参数可视化** — 所有水印/视频参数均可在界面上调节
- **用户系统** — 注册/登录,已登录用户无次数限制
- **IP 限流** — 未登录每日每 IP 限 2 次视频生成
- **自动清理** — 文件按日期目录存储,超过 2 天自动删除
- **暗色主题** — 精美深色 UI,适配桌面和移动端
## 📦 预览效果1:图片转视频,桌面客户端

## 📦 预览效果2:图片加水印,桌面客户端

## 📦 预览效果3:web端效果,支持网页版操作

## 📦 预览效果3:水印效果

## 📦 预览效果4:视频效果:支持pc版分辨率、手机版分辨率(抖音、小红书等),自行下载查看效果
---
## 📦 安装
### 环境要求
| 依赖 | 版本 |
|------|------|
| Python | >= 3.7 |
| Pillow | >= 9.0 |
| moviepy | >= 1.0.3 |
| Flask | >= 2.0 |
| Flask-Login | >= 0.6 |
| PyMySQL | >= 1.0(Web 模式) |
### 克隆项目
```bash
git clone https://github.com/your-username/pixmark.git
cd pixmark
```
### 安装依赖
```bash
pip install -r requirements.txt
```
> ffmpeg 会随 `moviepy` 自动下载,无需手动安装。
---
## 🖥️ Web 界面模式
### 1. 配置数据库
编辑 `config.ini`,填入你的 MySQL 连接信息:
```ini
[mysql]
host = localhost
port = 3306
user = root
password = yourpassword
database = pixmark
```
### 2. 启动服务
```bash
# Windows
web_app\启动Web服务.bat
# 或直接运行
cd web_app
python web_app.py
```
服务默认运行在 `http://localhost:5000`
### 3. 使用功能
| 页面 | URL | 说明 |
|------|-----|------|
| 首页 / 工具 | `/` | 图片水印 & 视频合成操作界面 |
| 使用说明 | `/help` | 详细图文使用教程 |
| 网站导航 | `/nav` | 精选工具与资源导航 |
| 注册 | `/register` | 注册账号 |
| 登录 | `/login` | 登录账号 |
---
## 💻 命令行模式
### 图片水印工具
```bash
python watermark_tool.py -i <输入目录> -o <输出目录> -t <水印文字> [选项]
```
**常用示例:**
```bash
# 右下角白色半透明水印
python watermark_tool.py -i "D:/photos" -o "D:/photos_out" -t "版权所有"
# 全图平铺水印,-30° 旋转,透明度 80
python watermark_tool.py -i "D:/photos" -o "D:/photos_out" -t "内部资料" \
--tile --angle -30 --opacity 80
# 黄色字体,48px,居中
python watermark_tool.py -i "D:/photos" -o "D:/photos_out" -t "仅供参考" \
--color "255,200,0" --font-size 48 --position center
# 递归处理所有子目录
python watermark_tool.py -i "D:/photos" -o "D:/photos_out" -t "© My Brand" \
--tile --recursive
```
**全部参数:**
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| `-i` / `--input` | str | 必填 | 输入图片目录 |
| `-o` / `--output` | str | 必填 | 输出目录(自动创建) |
| `-t` / `--text` | str | 必填 | 水印文字内容 |
| `--opacity` | int | `128` | 透明度 0(全透明)~ 255(不透明) |
| `--font-size` | int | `36` | 字体大小(px) |
| `--color` | str | `255,255,255` | 颜色,支持 `R,G,B` 或 `#RRGGBB` |
| `--position` | str | `bottom_right` | 水印位置,见下方说明 |
| `--tile` | flag | — | 开启全图平铺模式 |
| `--tile-spacing` | int | `100` | 平铺间距(px) |
| `--angle` | float | `-30.0` | 平铺水印旋转角度 |
| `--margin` | int | `20` | 边距(px),非平铺模式有效 |
| `--recursive` | flag | — | 递归处理子目录 |
**水印位置(`--position`):**
```
top_left top_center top_right
center_left center center_right
bottom_left bottom_center bottom_right
```
---
### 图片转视频工具
```bash
python images_to_video.py -i <输入目录> -o <输出视频.mp4> [选项]
```
**常用示例:**
```bash
# 默认竖屏 1080×1920,每张展示 3 秒
python images_to_video.py -i "D:/photos" -o "D:/output.mp4"
# 每张 2 秒 + 0.3 秒淡入淡出
python images_to_video.py -i "D:/photos" -o "D:/output.mp4" \
--duration 2 --fade 0.3
# 横屏 16:9,适配 B站 / YouTube
python images_to_video.py -i "D:/photos" -o "D:/output.mp4" \
--duration 2 --preset landscape
# 方形 1:1,适配 Instagram / 朋友圈
python images_to_video.py -i "D:/photos" -o "D:/output.mp4" \
--duration 3 --preset square
```
**分辨率预设(`--preset`):**
| 预设 | 分辨率 | 比例 | 适用平台 |
|------|--------|------|----------|
| `portrait`(默认) | 1080 × 1920 | 9:16 | 抖音、视频号、小红书、快手 |
| `landscape` | 1920 × 1080 | 16:9 | B站、YouTube、微博横屏 |
| `square` | 1080 × 1080 | 1:1 | Instagram、朋友圈 |
| `portrait_720` | 720 × 1280 | 9:16 | 小文件竖屏 |
---
### 推荐工作流
```bash
# Step 1:批量加水印
python watermark_tool.py \
-i "D:/原图" -o "D:/加水印" \
-t "版权所有" --tile --opacity 80
# Step 2:合成竖屏视频
python images_to_video.py \
-i "D:/加水印" -o "D:/发布视频.mp4" \
--duration 2 --fade 0.3 --preset portrait
```
---
## 📁 项目结构
```
pixmark/
├── watermark_tool.py # 命令行图片水印工具
├── images_to_video.py # 命令行图片转视频工具
├── app.py # 桌面版入口(可选)
├── config.ini # 数据库配置
├── config.json # 应用配置
├── 启动工具.bat # Windows 快捷启动
│
├── web_app/ # Web 应用目录
│ ├── web_app.py # Flask 主程序
│ ├── db.py # 数据库操作封装
│ ├── 启动Web服务.bat # Web 服务启动脚本
│ ├── uploads/ # 上传文件(按日期目录,自动清理)
│ │ └── YYYY-MM-DD/
│ ├── outputs/ # 输出文件(按日期目录,自动清理)
│ │ └── YYYY-MM-DD/
│ ├── templates/ # HTML 模板
│ │ ├── base.html # 基础布局
│ │ ├── index.html # 主功能页
│ │ ├── help.html # 使用说明页
│ │ ├── nav.html # 网站导航页
│ │ ├── login.html # 登录页
│ │ └── register.html # 注册页
│ └── static/ # 静态资源
│ └── css/style.css
│
├── README.md # 本文件
├── images_to_video_README.md # 视频工具详细说明
└── 使用说明.txt # 快速命令参考
```
---
## 🗄️ 数据库说明
Web 模式需要 MySQL,表结构会在首次启动时自动创建。主要数据表:
| 表名 | 说明 |
|------|------|
| `users` | 用户账号(用户名、密码哈希) |
| `tasks` | 视频合成任务(状态、输出路径) |
| `ip_usage` | IP 使用次数限制(每日重置) |
---
## ⚙️ 文件自动清理
Web 模式启动时会自动开启后台清理线程:
- **存储规则**:上传文件和输出视频均按 `YYYY-MM-DD/` 日期子目录存储
- **清理策略**:每 **1 小时** 扫描一次,自动删除超过 **2 天** 的日期目录
- **无感运行**:守护线程,不影响主服务
---
## ⚙️ 最后,另外正在完善VisionForge SDK框架,欢迎拍砖和交流。
VisionForgeSDK: VisionForge SDK 为用户提供新一代人工智能解决方案,释放数据的真正潜力; 1、火灾监测识别系统:可用于森林、厂区等防火区域; 2、垃圾监测识别系统:支持常见垃圾监测; 3、人脸轨迹提取系统:根据视频画面提取人员的时间活动轨迹,追踪目标; 4、智慧工地监测系统:实时监控施工场景,保障工人安全,提高管理效率; 5、头盔监测识别系统:头盔佩戴等
[输入链接说明](https://gitee.com/51diysoft/VisionForgeSDK)
## 🤝 参与贡献
欢迎 Issue 和 PR!
1. Fork 本仓库
2. 创建特性分支:`git checkout -b feature/your-feature`
3. 提交改动:`git commit -m 'feat: add some feature'`
4. 推送分支:`git push origin feature/your-feature`
5. 发起 Pull Request
---
## 📄 License
[MIT License](LICENSE) — 自由使用,欢迎二次开发。
---
如果这个项目对你有帮助,欢迎点个 ⭐ Star 支持一下!