Вы можете встретить ExifTool во время поиска программного обеспечения восстановления образа. Ну, ExifTool делает больше, чем это. Она является программой с открытым исходным кодом и предназначена для чтения, изменения и работы с изображениями, видео, аудио и метаданных в формате PDF. Метаданные являются дополнительными данными, добавленных к мультимедийным файлам. Например, метаданные фотографий являются дополнительные данные, такие как имя устройства, разрешение изображения, место, дата захвата и модификации и многое другое.
ExifTool поддерживает несколько форматов метаданных, включая EXIF, GPS, XMP, GeoTIFF, Photoshop IRB, ID3, FlashPix. Камера записывает EXIF (формат файл изображения), и мы будем концентрироваться на изображениях в этой статье, но учтите, что ExifTool может быть использован для изменения метаданных любого файла. Кроме того, если вам нужно быстро и безопасно копировать, перемещать, переименовывать, извлекать предварительные просмотры или изменить сразу несколько изображений, ExifTool является то, что вам нужно.
К концу этой статьи, мы будем знать, как установить ExifTool на Ubuntu/CentOS и манипулировать метаданными файлов. Мы будем использовать формат CR2 (Canon RAW-файлы), в этой статье, и это хорошо. Измените необходимые части команды, используемой в этой статье, чтобы сделать эту работу.
Установка ExifTool
В этом разделе мы установим ExifTool на Ubuntu и другие дистрибутивы Linux
В Ubuntu
Вы можете установить ExifTool на Ubuntu, используя утилиту apt.
# sudo apt install libimage-exiftool-perl
Из источника
Вы можете скомпилировать и установить ExifTool из источника на любом дистрибутиве Linux (включая CentOS)
$ wget https://netix.dl.sourceforge.net/project/exiftool/Image-ExifTool-10.61.tar.gz $ tar xvf Image-ExifTool-10.61.tar.gz $ cd Image-ExifTool-10.61/
Вы можете запустить ExifTool, запустив ./exiftool
в каталоге ExifTool или перейти к следующему шагу, если вы хотите установить его в масштабах всей системы. У вас должен быть установлен Perl на вашем компьютере Linux до компиляции.
# perl Makefile.PL # make # make test # make install
Теперь вы можете запустить ExifTool в вашем терминале, введя exiftool
.
Использование ExifTool
Ниже приведены наиболее распространенные команды, которые вы можете использовать с ExifTool:
Показаны все метаданные, связанные с изображением
$ exiftool IMG.CR2 ExifTool Version Number : 10.61 File Name : IMG.CR2 Directory : . File Size : 16 MB File Modification Date/Time : 2017:09:28 11:10:33+00:00 File Access Date/Time : 2017:09:28 11:17:17+00:00 File Inode Change Date/Time : 2017:09:28 11:17:11+00:00 File Permissions : rw-rw-r-- File Type : CR2 File Type Extension : cr2 MIME Type : image/x-canon-cr2
В этом примере, мы запускаем ExifTool с образом под названием «IMG.CR2», и мы получили метаданные, начиная с датой файла модификации, ширина и высота изображения, цветовые компоненты и мегапиксели.
Если вы хотите, те же метаданные, но вместо этого использовать машиночитаемые имена метаданных, таких как «Дата изменения», и вы хотите имена, которые вы должны использовать, то вам нужно использовать в реальных командах ExifTool, использывать опцию -s
. Таким образом, вместо «Имя файла» вы видите «FileName» и т.д.
$ exiftool -s IMG.CR2 ExifToolVersion : 10.61 FileName : IMG.CR2 Directory : . FileSize : 16 MB FileModifyDate : 2017:09:28 11:17:38+00:00 FileAccessDate : 2017:09:28 11:17:17+00:00 FileInodeChangeDate : 2017:09:28 11:17:11+00:00 FilePermissions : rw-rw-r-- FileType : CR2 FileTypeExtension : cr2 MIMEType : image/x-canon-cr2
Просмотр метаданные свойств файла
Вместо использования предыдущей команды, чтобы просмотреть все метаданные, вы можете указать имя свойства метаданных перед именем изображения, чтобы увидеть точные данные. В этом примере мы будем извлекать данные для RedBalance, FILETYPE, ShootingMode и HDR для изображения.
$ exiftool -RedBalance IMG_0221.CR2 Red Balance : 1.495117 $ exiftool -FileType IMG_0221.CR2 File Type : CR2 $ exiftool -ShootingMode IMG_0221.CR2 Shooting Mode : Manual $ exiftool -HDR IMG_0221.CR2 HDR : Off
Извлечение изображения предварительного просмотра, встроенного в необработанные файлы
Только в случае, если у вас есть поврежденный файл, вы можете попытаться извлечением изображения для предварительного просмотра или даже эскиза, используя следующую команду:
exiftool -b -PreviewImage IMG.CR2 > extract.jpg
Опция -b говорит ExifTool сделать вывод данных в двоичном формате и extract.jpg является файл назначения нового образа, созданного. Вы можете заменить -PreviewImage
на -ThumbnailImage
если вы хотите миниатюру вместо этого.
Перемещение или копирование файлов изображений в папки по годам и месяцам
Если у вас есть несколько изображений, которые вы хотите переместить в новые каталоги, в год, месяц, или даже дни, вы можете легко сделать это с помощью ExifTool в примере ниже:
$ exiftool -o '-Directory<CreateDate' -d ./NewImages/%y/%y%m -r ./OldImages 4 directories scanned 1 directories created 9 image files updated 4 image files unchanged
В приведенном выше примере копирует старые изображения в новые папки на основе их года и месяца. Различные параметры описаны ниже.
-o
копирует все файлы и оставит исходные файлы на месте. Удаление этой опции будет перемещать их, вместо того, чтобы копировать их-Directory<CreateDate
перемещает изображения в их новые папки назначения, используя дату создания образа./NewImages/%y/%y%m
относительный путь к папкам изображения, которые будут скопированы с подпапок имени года, а затем годМесяц.-r
повторяет процесс рекурсивно по исходной папке и во вложенных папках../OldImages
папка источник, где вся операция начинается и оригинальные изображения сохраняются.
Мы будем использовать команду tree
, чтобы увидеть структуру папок новой компоновки изображений, которой мы оперировали. Мы можем видеть изображения переместившиеся в новую папку с годом, а затем во вложенную папку годМесяц.
$ tree . └── 17 └── 1708 ├── IMG_0221.CR2 ├── IMG_0111.CR2 ├── IMG_0112.CR2 ├── IMG_0114.CR2 ├── IMG_0115.CR2 ├── IMG_0116.CR2 ├── IMG_0117.CR2 └── IMG_0112.CR2 2 directories, 8 files
Переименование файлов изображений в соответствии с их датой создания
Следующая команда переименовывает все «CR2» (Canon) исходные файлы в текущей папке и ее подпапках, в соответствии с метаданными: Создание даты и времени.
exiftool '-filename<CreateDate' -d %y%m%d_%H%M%S%%-c.%%e -r -ext CR2 ./RenamedImages
-filename<CreateDate
рассказывает ExifTool переименовать файлы изображений, используя свои данные и время создания-d
означает, что задает формат данных для значений времени%y%m%d_%H%M%S%%-c.%%le
используется для определения формата для использования при переименовании файла:
% г% м% d_ означает первую часть нового имени файла будет две последние цифры создания год, месяц и день._
Помещает подчеркивание перед второй частью имени файла.%H%M%S
добавляет часы, минуты и секунды времени создания.%%-c
добавляет добавочное количество копий, если несколько изображений имеют имя до точки процесса переименования.-c
просто ставит тире перед номером копии..%%e
сохраняет оригинальное расширение имени файла. Если вы хотите, чтобы ваши расширения как строчные или прописные буквы, используйте.%%le
или.%%ue
соответственно.-ext CR2
говорит ExifTool переименовывать файлы только с расширением CR2. Для того, чтобы переименовать все файлы изображений в исходной папке, не задавайте никаких расширений.-r
повторяет процесс рекурсивно по исходной папке и во вложенных папках../RenamedImages
относительный путь к папке, где все ваши изображения будут переименованы.
Мы будем использовать команду tree
еще раз, чтобы сравнить наши оригинальные имена файлов в OldImages на новые в RenamedImages.
,
├── Изображения
│ └── OldImages
│ ├── IMG_0221.CR2
│ ├── IMG_0111.CR2
│ ├── IMG_0112.CR2
│ ├── IMG_0114.CR2
│ ├── IMG_0115.CR2
│ ├── IMG_0116. CR2
│ ├── IMG_0117.CR2
│ └── IMG_0112.CR2
└── RenamedImages
├── 112211_154715.CR2
├── 112211_154726.CR2
├── 112211_154736.CR2
├── 112211_154800.CR2
├── 112211_154821.CR2
├ ── 112211_154848.CR2
├── 112211_154853.CR2
└── 112211_154855.CR2
ExifTool является очень мощным инструментом для работы с метаданными файлов. Есть несколько приложений, как и ожидалось, мы не могли бы добавить все варианты. Что мы пропустили? Расскажите нам в разделе комментарий.