Обнаружение exif с помощью Image :: ExifTool

Я использую Image :: ExifTool для своих exif-нужд.

Но теперь нужно ТОЛЬКО определить, есть ли у изображения данные EXIF ​​или нет, а Image :: ExifTool всегда возвращает некоторые данные (например, возвращает метаданные из статистики файла и внутреннее обнаружение изображения). Так,

#!/usr/bin/perl
use 5.014;
use warnings;
use open qw(:std :utf8);
use Image::ExifTool qw(:Public);
use Data::Dumper;

my $ext = new Image::ExifTool;
while(<>) {
    chomp;
    next unless(-f $path);
    if( $ext->ExtractInfo($path) ) {
        say "$_" for (sort $ext->GetFoundTags());
    }
    else {
        say "NO\t$path";
    }
}

печатает много тегов «Найдено», но файл не содержит никакой информации exif.

Есть ли здесь какой-нибудь простой способ определить, действительно ли изображение содержит данные EXIF ​​EMBEDEDD или нет с помощью Image :: ExifTool?

Если кому-то нужна дополнительная информация: Наличие и изображение img.jpg с данными exif, поэтому:

$ exif --list-tags --no-fixup img.jpg

#or
$ identify -format '%[exif:*]' img.jpg

напечатать много тегов. В настоящее время

$ cp img.jpg img2.jpg
$ mogrify -strip img2.jpg   #removing all exif data, so

$ exif --list-tags --no-fixup img2.jpg

отпечатки

Corrupt data
The data provided does not follow the specification.
ExifLoader: The data supplied does not seem to contain EXIF data.

и

$ identify -format '%[exif:*]' img2.jpg

ничего не печатает. Итак, img2.jpg не имеет данных exif. Но приведенный выше сценарий perl по-прежнему печатает много тегов «Найдено».


person novacik    schedule 24.06.2013    source источник


Ответы (1)


Попробуйте вызвать $ ext-> GetInfo ('EXIF: *'), чтобы получить только информацию EXIF.

  • Фил
person Phil Harvey    schedule 25.06.2013
comment
++ :) Именно этого и не хватает в документации. Конечно, вот несколько примеров, таких как exif: iso, но как именно собрать только EXIF-информацию отсутствует. СПАСИБО. - person novacik; 27.06.2013
comment
Я думаю, вы пропустили это в описаниях аргументов ImageInfo (): Таким образом, 'GROUP: *' представляет все теги в определенной группе. А описание аргумента GetInfo () относится к ImageInfo (), поскольку эти аргументы одинаковы для обеих функций. - person Phil Harvey; 08.07.2013