# iptcembed

(PHP 4, PHP 5, PHP 7)

iptcembed — 将二进制 IPTC 数据嵌入到一幅 JPEG 图像中

### 说明

iptcembed ( string `$iptcdata` , string `$jpeg_file_name` [, int `$spool` ] ) : mixed

Embeds binary IPTC data into a JPEG image.

### 参数

`iptcdata`

  The data to be written.

`jpeg_file_name`

  Path to the JPEG image.

`spool`

  Spool flag. If the spool flag is over 2 then the JPEG will be returned as a string.

### 返回值

If success and spool flag is lower than 2 then the JPEG will not be returned as a string, `FALSE` on errors.

### 范例

Example #1 Embedding IPTC data into a JPEG

    <?php

    // iptc_make_tag() function by Thies C. Arntzen
    function iptc_make_tag($rec, $data, $value)
    {
        $length = strlen($value);
        $retval = chr(0x1C) . chr($rec) . chr($data);

        if($length < 0x8000)
        {
            $retval .= chr($length >> 8) .  chr($length & 0xFF);
        }
        else
        {
            $retval .= chr(0x80) .
                       chr(0x04) .
                       chr(($length >> 24) & 0xFF) .
                       chr(($length >> 16) & 0xFF) .
                       chr(($length >> 8) & 0xFF) .
                       chr($length & 0xFF);
        }

        return $retval . $value;
    }

    // Path to jpeg file
    $path = './phplogo.jpg';

    // We need to check if theres any IPTC data in the jpeg image. If there is then
    // bail out because we cannot embed any image that already has some IPTC data!
    $image = getimagesize($path, $info);

    if(isset($info['APP13']))
    {
        die('Error: IPTC data found in source image, cannot continue');
    }

    // Set the IPTC tags
    $iptc = array(
        '2#120' => 'Test image',
        '2#116' => 'Copyright 2008-2009, The PHP Group'
    );

    // Convert the IPTC tags into binary code
    $data = '';

    foreach($iptc as $tag => $string)
    {
        $tag = substr($tag, 2);
        $data .= iptc_make_tag(2, $tag, $string);
    }

    // Embed the IPTC data
    $content = iptcembed($data, $path);

    // Write the new image data out to the file.
    $fp = fopen($path, "wb");
    fwrite($fp, $content);
    fclose($fp);
    ?>

### 注释

> Note:

> 此函数不需要 GD 图象库。