在“IPTC”图像中写入一组值

时间:2012-05-16 22:31:35

标签: php jpeg exif 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”在图像中写入元标记。

谢谢!

1 个答案:

答案 0 :(得分: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
)

拥抱!