# 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 可视化界面

[![Python](https://img.shields.io/badge/Python-3.7%2B-blue?logo=python&logoColor=white)](https://www.python.org/) [![Flask](https://img.shields.io/badge/Flask-2.x-black?logo=flask)](https://flask.palletsprojects.com/) [![License](https://img.shields.io/badge/License-MIT-green)](LICENSE) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen)](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:图片转视频,桌面客户端 ![输入图片说明](%E5%9B%BE%E7%89%87%E8%BD%AC%E8%A7%86%E9%A2%91.png) ## 📦 预览效果2:图片加水印,桌面客户端 ![输入图片说明](%E5%9B%BE%E7%89%87%E5%8A%A0%E6%B0%B4%E5%8D%B0.png) ## 📦 预览效果3:web端效果,支持网页版操作 ![输入图片说明](image.png) ## 📦 预览效果3:水印效果 ![输入图片说明](%E6%B0%B4%E5%8D%B0%E6%95%88%E6%9E%9C.png) ## 📦 预览效果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 支持一下!