php8.5
Home/ Manual/ image / functions/ iptcembed

iptcembed

PHP function Edit on GitHub ✎

(PHP 4, PHP 5, PHP 7, PHP 8)

Embeds binary IPTC data into a JPEG image

Description

iptcembed(string $iptc_data, string $filename, int $spool = 0): string|bool

Embeds binary IPTC data into a JPEG image.

Parameters

iptc_data

The data to be written.

filename

Path to the JPEG image.

spool

Spool flag. If the spool flag is less than 2 then the JPEG will be returned as a string. Otherwise the JPEG will be printed to STDOUT.

Return Values

If spool is less than 2, the JPEG will be returned, Falseforfailure. Otherwise returns true on success Falseforfailure.

Examples

Embedding IPTC data into a JPEG

php
<?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';

// 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);
?>

Notes Notrequired

Source: reference/image/functions/iptcembed.xml · from the official PHP manual (php/doc-en)