Напишите массив значений в изображении IPTC.

Я делаю класс для обработки изображения «IPTC», и мне нужно записать некоторые значения в массив, как показано в примере ниже;

[2#020] => Array //SUPPLEMENTAL_CATEGORY
    (
        [0] => SPORT
        [1] => REAL MADRID
    )


[2#025] => Array //KEYWORDS
    (
        [0] => value 1
        [1] => value 2
        [2] => value 3
    )

пример реализации этой надежды;

$iptc = new Iptc('some_image.jpg');
$iptc->set('KEYWORDS', array(
    'value 1',
    'value 2',
    'value 3'
));

Кто-нибудь может мне с этим помочь?

Примечание. Я использую «iptcembed» для записи метатегов в образ.

Спасибо!


person Agutoli    schedule 16.05.2012    source источник


Ответы (1)


Мне даже удалось решить проблему и я поделюсь здесь, как я это сделал;

$val = array('keyword1', 'keyword2', 'keyword3');
$rec  = 2;
$tag = 025;

if (is_array($val)) {
    $source = '';
    foreach($val as $item) {
        $len = strlen($item);
        $source .= chr(0x1c).chr($rec).chr($tag);
        $source .= chr($len >> 8).
                   chr($len & 0xff).
                   $item;
    }
    return $source;
}

Результат

Array
(
    [0] => keyword1
    [1] => keyword2
    [2] => keyword3
)

Обнимать!

person Agutoli    schedule 17.05.2012
comment
следует этому классу, который я создал для работы с IPTC github.com/agutoli/Image_Iptc - person Agutoli; 18.05.2012