一款在 Android 设备上批量管理动态照片(Motion Photo)的本地工具。它可以从动态照片中提取静态图片或内嵌视频,也可以将二者分别导出,整个处理过程在本地进行。
- 自动扫描相册中的动态照片,并按拍摄日期分组展示
- 单选、多选或按日期批量选择照片
- 预览静态图片和内嵌视频,支持缩放、滑动切换、循环播放和静音
- 提供三种处理方式:
- 保留照片:导出移除动态信息后的 JPEG 图片
- 保留视频:导出动态照片内嵌的 MP4 视频
- 照片 + 视频:分别导出 JPEG 图片和 MP4 视频
- 可选择保留原始动态照片,或在导出成功后将原文件移入系统回收站
- 显示处理进度、文件大小和预计节省空间
- 支持简体中文和英文界面
- 首次启动时授予照片访问权限。
- 在照片网格中选择要处理的动态照片;点击照片可进入预览。
- 选择“保留照片”“保留视频”或“照片 + 视频”。
- 根据需要决定是否删除原图,然后确认处理。
- 导出的文件会保存到原文件所在目录;若无法获取原目录,则保存到
DCIM/Camera。
若选择删除原图,Android 会显示系统确认窗口。小米设备使用系统删除确认,其他设备优先移入系统回收站。
| 处理结果 | 文件名示例 |
|---|---|
| 静态图片 | STILL_IMG_20260101_120000.jpg |
| 内嵌视频 | VIDEO_IMG_20260101_120000.mp4 |
- Android 10(API 29)及以上
- 当前仅构建
arm64-v8a架构 - 识别 JPEG 容器中的动态照片,当前扫描的文件名模式包括
MVIMG_*、PXL_*和*_MP.jpg - 支持通过
GCamera:MicroVideoOffset或 Motion Photo XMP 中的视频长度信息定位内嵌视频
不同厂商可能使用不同的动态照片格式或文件名规则,因此部分设备生成的动态照片可能暂时无法识别。建议先用少量文件测试,并在确认导出结果正常后再批量处理或删除原图。
使用最新版 Android Studio 打开项目,等待 Gradle 同步完成后构建并安装 app 模块即可。
项目主要使用:
- Kotlin
- Jetpack Compose + Material 3
- Android MediaStore
- Coil
所有扫描、预览和文件拆分均在设备本地完成。应用未声明网络权限,不会将照片上传到服务器。
如遇到无法识别的动态照片、导出异常或设备兼容问题,请提交 Issue,并附上设备型号、Android 版本、照片来源及复现步骤。请勿上传包含隐私信息的原始照片。