Как прочитать ключевые слова Lightroom из файла изображения с помощью PHP? - PullRequest
4 голосов
/ 14 августа 2011

У меня есть фото-сообщество ( www.jungledragon.com ), которое позволяет пользователям загружать фотографии.Моя платформа PHP / CodeIgniter.

В рамках процесса загрузки я уже читаю информацию EXIF, используя PHP-функцию exif_read_data , которая отлично работает.Я читаю сведения о камере и показываю их на информационной вкладке.

Кроме того, пользователь должен вручную установить название фотографии, описание и теги на веб-сайте после загрузки фотографии.Однако некоторые пользователи управляют этими полями в своей программе управления изображениями, например, Lightroom.Было бы здорово, если бы я тоже мог их читать, загрузка стала бы полной радостью.

Я уже улучшил свои показания EXIF, чтобы прочитать «подпись», таким образом, пользователям не нужно устанавливать заголовок изображенияпосле загрузки больше.Теперь я ищу читать ключевые слова, вот где я застрял.Вот частичный скриншот изображения в Lightroom:

enter image description here

Я могу читать метаданные, но как мне прочитать ключевые слова?Тот факт, что это не внутри метаданных, заставляет меня задуматься, возможно ли это вообще?Я пытался прочитать все значения, которые я могу получить (ANY_TAG, IFD0, EXIF, APP12), используя exif_read_data, но ключевые слова не найдены.

Есть мысли?

Ответы [ 3 ]

5 голосов
/ 14 августа 2011

Как и предполагалось, вам, возможно, придется использовать другой метод чтения метаданных.

http://www.foto -biz.com / Lightroom / Exif-vs-iptc-vs-xmp

Ключевые слова изображения могут храниться в IPTC, а не в EXIF.Я не знаю, есть ли стандартный метод платформы для чтения iptc, но быстрый Google показывает это

http://php.net/manual/en/function.iptcparse.php

1 голос
/ 14 августа 2011

Попробуйте использовать PEL , гораздо более полную библиотеку, чем exif_read_data () для данных exif.

0 голосов
/ 24 марта 2018

После долгих исследований я нашел решение, позволяющее экспортировать ключевые слова по lightroom в jpg-файл:

$image = getimagesize($imagepath, $info);
if(isset($info['APP13']))
{
    $iptc = iptcparse($info['APP13']);
    $keywordcount = count($iptc["2#025"]);
    for ($i=0; $i<$keywordcount; $i++)
    { 
        echo "keyword : " . $iptc["2#025"][$i] . "<br/>";
    }
}
...