欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Mac下JPEG照片的时间日期纠正

发布时间:2024/3/24 编程问答 48 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Mac下JPEG照片的时间日期纠正 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

之前把照片保存在百度网盘上了,重新下载之后照片的创建时间变成了下载时间。但是EXIF中的创建时间是正确的。可是Apple的照片程序竟然显示的是照片的文件创建时间而不是EXIF中的时间,开始以为这是一个Bug,后来明白了,应该是Apple的用户的隐私策略限制,不能读取用户的文件(至少看起来是这样的)。而百度网盘似乎就不太在乎这些,在百度网盘上的文件是会自动按EXIF文件中的时间整理的。

为此,写了一个python脚本,读取JPEG的EXIF中的原始创建时间,改写文件的创建时间和文件名。

from PIL import Image import exifread import osdef renameFile(fileName, newName):if fileName == newName:returntot = 1while os.path.exists(newName):newName = os.path.split(fileName)[0] + "_" + str(tot) + os.path.split(fileName)[1]tot += 1os.rename(fileName, newName)def editFileCtime(filePath, timeStr):print("====editFileCtime")ctime = timeStr.replace(':', '').replace(' ', '')ctime = ctime[:-2] + "." + ctime[-2:]os.system("touch -t " + ctime + " " + filePath)def getCreateTime(filename):print("====getCreateTime")FIELD = 'EXIF DateTimeOriginal'fd = open(filename, 'rb')tags = exifread.process_file(fd)fd.close()print("fileName:", filename)if FIELD in tags:print(tags[FIELD])return tags[FIELD]else:print('No {} found'.format(FIELD))return Noneif __name__ == "__main__":for filename in os.listdir('.'):if os.path.isfile(filename):createTime = getCreateTime(filename)if createTime:editFileCtime(filename, str(createTime))new_name = str(createTime).replace(':', '').replace(' ', '_') + os.path.splitext(filename)[1]renameFile(filename, new_name)

总结

以上是生活随笔为你收集整理的Mac下JPEG照片的时间日期纠正的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。