У меня есть множество PNG-файлов, которые хочет сохранить моя жена и которые были сняты с нашей радионяни. Файлы названы по дате их захвата:
yyyymmdd_hhmmss.png
К сожалению, на изображении нет сохраненного DateTaken, и я хотел бы добавить его для целей регистрации и насытить монстра ОКР, рычащего в моей груди.
Я просмотрел несколько сообщений здесь, используя командную строку ExifTool, но ни один из них, похоже, не подробно описывает, как установить свойство «дата съемки» (как показано в проводнике Windows, Lightroom и т. Д.), Хотя, как я понимаю, это определено в exif как: Время создания??? (может быть).
Я пробовал много комбинаций из следующих без успеха. (Дата съемки остается пустой).
exiftool "-creationTime=-timecreated" *
exiftool "-creationTime<EXIF:DateCreated" *
В отчаянии, чтобы увидеть, если что-нибудь на самом деле происходит:
exiftool "-creationTime=now" *
exiftool.exe "-DateTimeOriginal>FileModifyDate" *
exiftool -v "-FileModifyDate>AllDates" *
Я приношу извинения; есть что-то такое простое, что мне не хватает, но после просмотра результатов Google и многочисленных сообщений здесь я не стал ближе.
Пока у вас установлено имя файла, как вы упомянули, команда, которую вы хотите использовать,
exiftool "-PNG:CreationTime<Filename" FileOrDir
Как упоминает @cmason, PNG не поддерживает стандарт EXIF. У Exiftool и Exiv2 есть обходной путь, но он не получил широкой поддержки. Таким образом, теги EXIF не будут установлены другими программами, если вы не установите их самостоятельно с помощью Exiftool или Exiv2.
Дата съемки — это свойство Windows, а не тег метаданных, и в случае файлов PNG она устанавливается из PNG:CreationTime
тега.
Чтобы установить свойство Windows Date Take в файле PNG на что-то другое, вы можете использовать эту команду, заменив отметку времени соответствующим образом:
exiftool -PNG:CreationTime="2017:01:10 10:45:01" FileOrDir
Изменить: просто несколько заметок о том, почему ваши предыдущие команды не работали.
exiftool "-creationTime=-timecreated" *
Знак равенства присваивает значения. Итак, в этом случае вы присваиваете CreationTime
тегу значение -timecreated
. Если вы хотите скопировать TimeCreated
тег, вам сначала нужно было поставить тире перед -timecreated
(используется только в самом начале для обозначения операции с тегом), а затем использовать операцию копирования тега (меньше/больше символа <
или >
), например , -creationTime<timecreated
или -TimeCreated>CreationTime
.
exiftool "-creationTime<EXIF:DateCreated" *
и exiftool.exe "-DateTimeOriginal>FileModifyDate" *
Правильно отформатирован, но, как уже упоминалось, PNG не поддерживает теги EXIF (DateTimeCreated обычно является тегом EXIF, хотя он также может быть тегом XMP). Должно было появиться сообщение об ошибке «Нет записываемых тегов».
exiftool "-creationTime=now" *
«Сейчас» — это псевдотег Exiftool для текущей даты/времени. Но знак равенства устанавливается CreationTime
для значения now
, а не для текущего DateTime. Правильная команда была бы "-CreationTime<Now"
.
exiftool -v "-FileModifyDate>AllDates" *
Правильно отформатировано, но опять же проблема с отсутствием поддержки данных EXIF в PNG. AllDates
— это ярлык Exiftool для трех тегов EXIF: EXIF:DateTimeOriginal, EXIF:ModifyDate и EXIF:CreateDate.
Редактировать 2: в какой-то момент, похоже, произошли изменения в том, как Windows читает метаданные PNG. Кажется, он перестает читать фрагмент PNG IDAT, даже если за ним есть данные, что разрешено спецификацией. PNG:CreationTime
может не отображаться должным образом при написании exiftool. См. этот пост на форуме Exiftool .
Редактировать 3: в exiftool версии 10.71 Фил Харви изменил способ, которым exiftool записывает PNG:CreationTime
тег, чтобы он соответствовал формату PNG RFC-1123 ( ссылка ссылка ). Windows, похоже, не может прочитать этот формат. Это изменение было отменено в версии 11.13 с возможностью принудительного применения спецификации PNG с помощью этой -api StrictDate
опции.
PNG не поддерживает EXIF в своем формате файла. Есть способы добавить определенные данные, известные как «фрагменты», но я не вижу «даты взятия» конкретно в стандарте .
Я рекомендую конвертировать все в JPG, а затем использовать инструмент EXIF или Lightroom, чтобы добавить информацию о дате съемки. Если вы используете Mac, скорее всего, доступен сценарий Apple.
матдм
Крис
матдм