问题描述:
安卓 QQ 的图片发送功能在导入照片后会乱序,且排序规则不明
尝试解决过程:
设备:
小米 9,MIUI10,未 ROOT
前提:
所有照片均用 Perl 脚本配合 ExifTool 验证是否具有拍照时间( DateTimeOriginal )
如果没有拍照时间则使用修改时间作为拍照时间(美颜照片结果均没有 DateTimeOriginal 数据项)
所有视频文件均同样验证,验证字段为 MediaCreateDate、MediaModifyDate、CreationDate
最后统一所有文件的文件系统修改时间为拍照时间 /媒体修改时间
尝试:
1、使用 FTP 经过 WIFI 导入,文件系统修改时间会以 FTP 写入结束时间戳记录,乱序
2、使用 MTP 导入,文件系统修改时间为原始修改时间,但 QQ 照片发送功能乱序
3、使用 MTP 导入,重命名所有文件并按顺序拷贝进入机器,成功....
猜测与建议:
在第二次乱序的时候,按 QQ 图片发送功能的顺序排查照片在文件系统内的目录属性
怀疑使用 ctime ( change time )作为图片排序依据
但 ctime 实为文件状态修改时间,包括权限修改文件移动在内的操作均会引起时间更新
按理说不应作为排序依据,更为合适的选择是 mtime,但此数据在 FTP 拷贝中会失效
建议使用 EXIF 数据与 mtime 作为依据联合排序
不存在 exif 数据的情况下再考虑 mtime,由始至终绝不考虑 ctime
临时解决办法:
备份现有设备上的照片数据,并清空,按顺序重命名所有文件,并按顺序拷贝进机器
这样可保证 ctime 按照片顺序递增,QQ 图片发送功能不乱序,
但视频文件规范命名前缀为 VID,批量拷贝的时候必然排序在最后位置,并不完美
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.