php-doc-en/reference/image/functions/iptcembed.xml
Christoph Michael Becker a08be5cd1e fixed example which assumed that calling iptcembed() would fail if there's
already an APP13 marker, what is not true as of PHP 4.3.0 at least

git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@337191 c90b9560-bf6c-de11-be94-00142212c4b1
2015-07-18 20:03:52 +00:00

148 lines
3.6 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id='function.iptcembed' xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>iptcembed</refname>
<refpurpose>Embeds binary IPTC data into a JPEG image</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>mixed</type><methodname>iptcembed</methodname>
<methodparam><type>string</type><parameter>iptcdata</parameter></methodparam>
<methodparam><type>string</type><parameter>jpeg_file_name</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>spool</parameter><initializer>0</initializer></methodparam>
</methodsynopsis>
<para>
Embeds binary IPTC data into a JPEG image.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>iptcdata</parameter></term>
<listitem>
<para>
The data to be written.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>jpeg_file_name</parameter></term>
<listitem>
<para>
Path to the JPEG image.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>spool</parameter></term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
If <parameter>spool</parameter> is less than 2, the JPEG will be returned,
&return.falseforfailure;. Otherwise returns &true; on success
&return.falseforfailure;.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example>
<title>Embedding IPTC data into a JPEG</title>
<programlisting role="php">
<![CDATA[
<?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);
?>
]]>
</programlisting>
</example>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
&note.gd.notrequired;
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->