exif_offset.py 859 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #!/usr/bin/python3
  2. import sys
  3. import piexif as x
  4. import datetime as dt
  5. offset = '+02:00'
  6. print('Override offset with', offset)
  7. if len(sys.argv) <= 1:
  8. print(sys.argv[0], 'img1.jpg img2.jpg')
  9. quit()
  10. def codesOfLabelsContaining(value: str):
  11. codes = []
  12. for (k, v) in x.TAGS['Exif'].items():
  13. if value in v['name']:
  14. codes.append(k)
  15. return codes
  16. timeCodes = codesOfLabelsContaining('Time')
  17. offsetCodes = codesOfLabelsContaining('OffsetTime')
  18. filenames = sys.argv[1:]
  19. def overrideOffset(exifDict):
  20. e = exifDict['Exif']
  21. offsetBytes = offset.encode()
  22. for k in offsetCodes:
  23. e[k] = offsetBytes
  24. return exifDict
  25. for filename in filenames:
  26. print(filename)
  27. exifDict = x.load(filename)
  28. exifDict = overrideOffset(exifDict)
  29. exifBytes = x.dump(exifDict)
  30. x.insert(exifBytes, filename)