|
@@ -7,10 +7,12 @@ import datetime as dt
|
|
|
shift = dt.timedelta(hours = 1, minutes = 6)
|
|
|
print('Shift exif date time by', shift)
|
|
|
|
|
|
+
|
|
|
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():
|
|
@@ -18,6 +20,7 @@ def codesOfLabelsContaining(value: str):
|
|
|
codes.append(k)
|
|
|
return codes
|
|
|
|
|
|
+
|
|
|
timeCodes = codesOfLabelsContaining('Time')
|
|
|
dateTimeCodes = codesOfLabelsContaining('DateTime')
|
|
|
|
|
@@ -34,23 +37,10 @@ def dateTimeOf(exif):
|
|
|
return dt.datetime.now()
|
|
|
|
|
|
|
|
|
-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 shiftDateTime(exifDict):
|
|
|
e = exifDict['Exif']
|
|
|
t = dateTimeOf(e)
|
|
|
- print('Shifting')
|
|
|
- print(t)
|
|
|
-
|
|
|
targetDateTime = t + shift
|
|
|
- print('to')
|
|
|
- print(targetDateTime)
|
|
|
|
|
|
for k in dateTimeCodes:
|
|
|
e[k] = targetDateTime.strftime(formatDate).encode()
|
|
@@ -61,9 +51,6 @@ def shiftDateTime(exifDict):
|
|
|
for filename in filenames:
|
|
|
print(filename)
|
|
|
exifDict = x.load(filename)
|
|
|
- describeExif(exifDict['Exif'])
|
|
|
exifDict = shiftDateTime(exifDict)
|
|
|
- describeExif(exifDict['Exif'])
|
|
|
exifBytes = x.dump(exifDict)
|
|
|
x.insert(exifBytes, filename)
|
|
|
- print()
|