Я делаю альбом с изображениями от камер нескольких друзей. Давайте предположим, что дата и время воздействия EXIF корректна во всех файлах. Имена файлов, однако, не выровненные (например, моя камера запускается в IMG0001, но телефонная камера моего друга запускается в pic1234.jpg, и мой собственный телефон запускается в pic5678.jpg).
Существует ли путь с Shotwell для экспорта файлов от всех к простому каталогу с именами файлов, переписанными так, чтобы изображения были отсортированы в хронологическом порядке? Затем когда я слайд-шоу эти файлы в другом компьютере, с другой программой просмотра изображений (или с самим Shotwell в режиме просмотра файла), они покажут в правильном хронологическом порядке.
Пример. Если у меня есть эти шесть файлов...
... затем я хотел бы экспортировать их с именами файлов как они:
так, чтобы они показали в правильном порядке при просмотре с любым браузером изображения.
Следующий сценарий добивается цели, но не интегрируется в Shotwell, который является точкой вопроса и (корректно) перестанет работать, если изображения не экспортируются с данными Exif:
#!/usr/bin/python
import pyexiv2
import sys
import shutil
def getTimestamp(f):
metadata = pyexiv2.ImageMetadata(f)
metadata.read()
try:
d = metadata['Exif.Image.DateTime']
return d.value.strftime('%Y%m%d%H%M%S')
except Exception as e:
return "00000000000000"
if len(sys.argv) > 1:
for f in sys.argv[1:]:
try:
timestamp = getTimestamp(f)
prefix = "%s_" % timestamp
if f[0:len(prefix)] == prefix:
print "File %s was already renamed, not renaming again" % (f)
else:
nn = "%s%s" % (prefix, f)
shutil.move(f, nn)
print "File %s renamed to %s" % (f, nn)
except Exception as e:
print "File %s not renamed (%s)" % (f, e)
else:
print "Usage: %s <JPG files with Exif tags>" % (sys.argv[0])
Самый легкий подход должен будет повредить это в две части.
Во-первых, экспортируйте все изображения от Shotwell до одной папки.
Во-вторых, используйте pyrenamer, чтобы дать файлам шаблон именования, который Вы хотите.
Вот пример того, как использовать pyrenamer:
Вот код, я раньше пытался соответствовать Вашему примеру в Вашем вопросе:
{imageyear}{imagemonth}{imageday}_{imagehour}{imageminute}{imagesecond}_{num3+1}.jpg
Это производит имена файлов, которые похожи на это:
Заметьте, что можно добавить символы между значениями в фигурных скобках (как подчеркивание между {imageday} и {imagehour}), для создания вывода легче читать.
Последнее {num3+1} укусило, является дополнительным, но помогает, если у Вас, оказывается, есть две фотографии, выстрелил в ту же секунду, и делает всех легче читать.
Если Вы делаете это и находите, что один или несколько часов устройства выключен, можно использовать Shotwell, чтобы изменить время/дату и затем восстановить шаг pyrenamer, чтобы иметь все в идеальном порядке. Это особенно полезно для чего-то как свадьба, куда люди приезжают в событие от различных часовых поясов, и фотографии не в порядке выглядят полностью неправильными.
Наконец, не забывайте включать расширение файла в конец, или это будет удалено и может вызвать другие проблемы.