一个专为朋友圈设计的智能长图拼接工具,支持将多张图片垂直拼接成适合社交媒体分享的长图,完全基于Web技术实现,可直接在浏览器中使用。
开发这个网页版工具,是因为现有的拼图软件大多需要付费(╥╯^╰╥),且拼接效果不尽如人意。我希望打造一个免费且好用的解决方案(✿◠‿◠),直接在浏览器中就能使用。虽然当前这个工具可能还有提升空间(>_<),但咱既然会写代码,不如自己动手丰衣足食,享受从零打造网页工具的乐趣(๑•̀ㅂ•́)و✧!
🎯 智能分组:根据图片数量自动设置合理的每组上限
📱 触屏优化:专为手机和平板优化的触摸操作体验
🎨 可视化操作:直观的拖拽式图形界面
⚡ 浏览器处理:无需服务器,完全在浏览器端处理
🔧 灵活配置:可自定义每组图片数量
📁 拖拽支持:支持文件和文件夹拖拽
📊 实时预览:处理进度实时显示
🧹 一键清理:内置清理功能
⏰ 时间排序:按拍摄时间自动排序(早到晚)
📱 移动适配:响应式设计,完美支持手机和平板
🤏 触摸手势:长按拖拽、触觉反馈、防误触设计
暂不支持,等我找到免费域名再说¯_(ツ)_/¯
https://piggywu981.github.io/MomentWebStitcher/
- 克隆仓库
git clone https://github.com/Piggywu981/MomentWebStitcher.git
cd MomentWebStitcher- 本地运行
# 方法1: 使用Python
python -m http.server 8000
# 方法2: 使用Node.js
npm install -g http-server
http-server .
# 方法3: 直接双击index.html(部分浏览器可能需要)- 打开浏览器访问 http://localhost:8000
- 拖拽上传:将图片文件拖拽到上传区域
- 点击上传:点击上传区域选择图片文件
- 批量上传:支持一次选择多张图片
- 自动分组:设置每组图片数量后点击"自动分组"
- 手动调整:拖拽图片在分组间自由移动
- 分组管理:每个分组可单独清空
- 长按拖拽:长按图片约400ms开始拖拽
- 移动放置:拖拽到目标分组后松开手指
- 返回图片池:拖拽到左侧图片池区域
- 删除图片:点击图片上的"×"按钮
- 触觉反馈:支持震动的设备会有操作反馈
- 防误触:轻微移动不会触发拖拽,需要明显移动
- 扩大点击区:删除按钮周围有额外10px的点击缓冲区域
- 响应式布局:自动适配手机屏幕
- 大触摸目标:所有按钮和交互区域针对触摸优化
- 流畅动画:拖拽时有平滑的视觉反馈
- 输出质量:调整输出图片质量(70-100%)
- 分组大小:自定义每组图片数量
- 点击"开始拼图"按钮
- 实时查看处理进度
- 完成后自动下载拼接后的图片
- 上传区域:支持拖拽和点击上传
- 分组控制:设置每组图片数量和自动分组
- 分组显示:可视化查看和管理所有分组
- 图片池:待分配的图片集合
- 预览窗口:查看拼接效果
- 输出设置:调整输出质量
- 处理控制:开始/停止处理
- 进度显示:实时处理进度
- 根据图片总数自动计算合理分组
- 支持手动调整分组内容
- 实时统计每组图片数量
- 支持图片在分组间自由拖拽
- 支持从图片池拖拽到分组
- 支持清空分组后图片回到图片池
- 组内排序:支持在分组内拖拽调整图片顺序
- 长按拖拽:400ms长按开始拖拽,防止误触
- 触觉反馈:支持设备震动反馈(拖拽开始、放置成功、删除确认)
- 触摸目标:所有按钮和交互区域增大50%以上
- 手势支持:完美适配手机和平板触摸操作
- 响应式布局:自动适配不同屏幕尺寸
- 防误触:移动阈值保护,轻微移动不会误触发
- 图片数量实时统计
- 处理进度百分比显示
- 详细的操作状态提示
- 触摸操作视觉反馈(阴影、动画、颜色变化)
- Chrome: 90+
- Firefox: 88+
- Safari: 14+
- Edge: 90+
- JPEG/JPG: 最常用的照片格式
- PNG: 支持透明背景
- WebP: Google现代格式
- BMP: Windows位图
- TIFF: 高质量图像
- 前端: HTML5 + CSS3 + JavaScript (ES6+)
- 图片处理: Canvas API
- 拖拽: 原生Drag & Drop API + Touch Events API
- 触屏优化: 触觉反馈API (Vibration API) + 触摸手势识别
- 响应式设计: CSS Grid + Flexbox + 媒体查询
- 部署: GitHub Pages
在 script.js 中可调整以下参数:
const CONFIG = {
DEFAULT_GROUP_SIZE: 9, // 默认每组图片数
MAX_FILE_SIZE: 10 * 1024 * 1024, // 最大文件大小 (10MB)
OUTPUT_QUALITY: 95, // 默认输出质量
SUPPORTED_FORMATS: ['image/jpeg', 'image/png', 'image/webp', 'image/bmp', 'image/tiff']
};- 支持一次处理多张图片
- 自动按设置的分组大小进行分组
- 每组图片单独生成一个文件
MomentWebStitcher/
├── index.html # 🎨 主页面
├── style.css # 🎨 样式文件
├── script.js # ⚙️ 核心JavaScript
├── package.json # 📦 项目配置
├── README.md # 📖 说明文档
└── .github/
└── workflows/
└── deploy.yml # 🚀 GitHub Actions部署配置
- Fork 本仓库
- 进入仓库 Settings → Pages
- 选择 Source 为 "Deploy from a branch"
- 选择 Branch 为 "main" 和 "/ (root)"
- 等待部署完成
在仓库设置中添加自定义域名,或修改 CNAME 文件。
Q: 为什么图片处理很慢? A: 图片处理在浏览器端进行,大文件处理可能需要时间。建议:
- 减少单次处理的图片数量
- 使用较小的图片文件
- 关闭其他占用资源的标签页
Q: 支持哪些浏览器? A: 支持所有现代浏览器(Chrome 90+, Firefox 88+, Safari 14+, Edge 90+)
Q: 有文件大小限制吗? A: 浏览器通常限制单个文件大小为100MB,但建议单张图片不超过10MB以获得最佳体验
Q: 如何处理大量图片? A: 建议分批处理,每次处理不超过50张图片
Q: 如何调整图片顺序? A: 在分组内可以拖拽调整顺序,或清空后重新分组
Q: 输出图片质量如何设置? A: 使用右侧的质量滑块调整(70-100%)
Q: 可以横向拼接吗? A: 当前版本仅支持垂直拼接,横向拼接功能将在后续版本添加
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
欢迎提交 Issue 和 Pull Request!
如有问题或建议,请通过 GitHub Issues 联系我们。