1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import sys
- import piexif as x
- import datetime as dt
- offset = '+02:00'
- print('Override offset with', offset)
- if len(sys.argv) < 1:
- print(sys.argv[0], 'img1.jpg img2.jpg')
- quit()
- def codesOfLabelsContaining(value: str):
- codes = []
- for (k, v) in x.TAGS['Exif'].items():
- if value in v['name']:
- codes.append(k)
- return codes
- timeCodes = codesOfLabelsContaining('Time')
- offsetCodes = codesOfLabelsContaining('OffsetTime')
- filenames = sys.argv[1:]
- def describeExif(exif):
- for k in timeCodes:
- if k in exif.keys():
- print('Exif[', k, ']=', exif[k], '->', x.TAGS['Exif'][k]['name'])
- else:
- print('Exif[', k, ']=', '?', '->', x.TAGS['Exif'][k]['name'])
- def overrideOffset(exifDict):
- e = exifDict['Exif']
- offsetBytes = offset.encode()
- for k in offsetCodes:
- print('Exif[', k, ']=', e[k], '->', offsetBytes, ':', x.TAGS['Exif'][k]['name'])
- e[k] = offsetBytes
- return exifDict
- for filename in filenames:
- print(filename)
- exifDict = x.load(filename)
- describeExif(exifDict['Exif'])
- exifDict = overrideOffset(exifDict)
- describeExif(exifDict['Exif'])
- exifBytes = x.dump(exifDict)
- x.insert(exifBytes, filename)
- print()
|