php-doc-en/reference/image/reference.xml
Hannes Magnusson c030e2adf7 Upgrade to DocBook5:
- All id attributes are now xml:id
 - Add docbook namespace to all root elements
 - Replace <ulink /> with <link xlink:href />
 - Minor markup fixes here and there


git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@238160 c90b9560-bf6c-de11-be94-00142212c4b1
2007-06-20 22:25:43 +00:00

240 lines
7.8 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.32 $ -->
<!-- Purpose: utilspec.image -->
<!-- Membership: bundled -->
<reference xml:id="ref.image" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Image Functions</title>
<titleabbrev>Image</titleabbrev>
<partintro>
<section xml:id="image.intro">
&reftitle.intro;
<para>
PHP is not limited to creating just HTML output. It can also be
used to create and manipulate image files in a variety of different
image formats, including gif, png, jpg, wbmp, and xpm. Even more
convenient, PHP can output image streams directly to a browser. You
will need to compile PHP with the GD library of image functions for
this to work. GD and PHP may also require other libraries, depending
on which image formats you want to work with.
</para>
<para>
You can use the image functions in PHP to get the size of
<acronym>JPEG</acronym>, <acronym>GIF</acronym>,
<acronym>PNG</acronym>, <acronym>SWF</acronym>,
<acronym>TIFF</acronym> and <acronym>JPEG2000</acronym> images.
</para>
<para>
With the <link linkend="ref.exif">exif extension</link>, you are able
to work with information stored in headers of
<acronym>JPEG</acronym> and <acronym>TIFF</acronym> images. This way you can
read meta data generated by digital cameras. The exif
functions do not require the <acronym>GD</acronym> library.
</para>
<para>
<note>
<simpara>
Read the requirements section about how to expand image capabilities
to read, write and modify images. To read meta data of pictures
taken by digital cameras you need the above mentioned
<link linkend="ref.exif">exif extension</link>.
</simpara>
</note>
</para>
</section>
<section xml:id="image.requirements">
&reftitle.required;
<para>
If you have the <acronym>GD</acronym> library (available at <link
xlink:href="&url.gd;">&url.gd;</link>) you will also be able to create
and manipulate images.
</para>
<para>
The format of images you are able to manipulate depend on the
version of <acronym>GD</acronym> you install, and any other libraries
<acronym>GD</acronym> might need to access those image formats.
Versions of <acronym>GD</acronym> older than gd-1.6
support GIF format images, and do not support PNG, where versions
greater than gd-1.6 and less than gd-2.0.28 support PNG, not GIF. GIF
support was re-enabled in gd-2.0.28.
<note>
<simpara>
Since PHP 4.3 there is a bundled version of the GD lib. This bundled
version has some additional features like alpha blending, and should
be used in preference to the external library
since its codebase is better maintained and more stable.
</simpara>
</note>
</para>
<note>
<para>
Support for GD 1.x has been removed as of PHP 6.0.0, which requires GD
2.0.33 or later.
</para>
</note>
<para>
You may wish to enhance GD to handle more image formats.
<table>
<title>Supported image formats</title>
<tgroup cols="3">
<thead>
<row>
<entry>Image format</entry>
<entry>Library to download</entry>
<entry>Notes</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>gif</literal></entry>
<entry></entry>
<entry>
Only supported in GD versions older than gd-1.6 and newer than
gd-2.0.28. <emphasis>Read-only
</emphasis> GIF support is available with PHP 4.3.0 and the bundled
GD-library. <emphasis>Write</emphasis> support is available since
PHP 4.3.9 and PHP 5.0.1.
</entry>
</row>
<row>
<entry><literal>jpeg-6b</literal></entry>
<entry><link xlink:href="&url.jpeg;">&url.jpeg;</link></entry>
<entry>
When buliding the jpeg-v6b library (prior to building PHP) you
must use the <option role="configure">--enable-shared</option>
option in the configure step. If you do not, you will receive
an error saying <literal>libjpeg.(a|so) not found</literal>
when you get to the configure step of building PHP.
</entry>
</row>
<row>
<entry><literal>png</literal></entry>
<entry><link xlink:href="&url.libpng;">&url.libpng;</link></entry>
<entry>
Only supported in GD versions greater than gd-1.6.
</entry>
</row>
<row>
<entry><literal>xpm</literal></entry>
<entry><link xlink:href="&url.libxpm;">&url.libxpm;</link></entry>
<entry>
It's likely you have this library already available, if your system
has an installed X-Environment.
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
You may wish to enhance GD to deal with different fonts. The following
font libraries are supported:
<table>
<title>Supported font libraries</title>
<tgroup cols="3">
<thead>
<row>
<entry>Font library</entry>
<entry>Download</entry>
<entry>Notes</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>FreeType 1.x</literal></entry>
<entry><link xlink:href="&url.freetype;">&url.freetype;</link></entry>
<entry>Support removed as of PHP 6.0.0</entry>
</row>
<row>
<entry><literal>FreeType 2</literal></entry>
<entry><link xlink:href="&url.freetype;">&url.freetype;</link></entry>
<entry></entry>
</row>
<row>
<entry><literal>T1lib</literal></entry>
<entry><link xlink:href="&url.t1lib;">&url.t1lib;</link>)</entry>
<entry>
Support for Postscript Type 1 fonts.
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</section>
&reference.image.configure;
&reference.image.ini;
<section xml:id="image.resources">
&reftitle.resources;
<para>
This extension defines two resource types: an image identifier and a font
identifier.
</para>
</section>
&reference.image.constants;
<section xml:id="image.examples">
&reftitle.examples;
<para>
<example>
<title>PNG creation with PHP</title>
<programlisting role="php">
<![CDATA[
<?php
header("Content-type: image/png");
$string = $_GET['text'];
$im = imagecreatefrompng("images/button1.png");
$orange = imagecolorallocate($im, 220, 210, 60);
$px = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);
?>
]]>
</programlisting>
</example>
This example would be called from a page with a tag like: &lt;img
src=&quot;button.php?text=text&quot;&gt;. The above button.php script
then takes this &quot;text&quot; string and overlays it on top of a
base image which in this case is &quot;images/button1.png&quot;
and outputs the resulting image. This is a very convenient way to
avoid having to draw new button images every time you want to
change the text of a button. With this method they are
dynamically generated.
</para>
</section>
</partintro>
&reference.image.functions;
</reference>
<!-- 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:"../../../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
-->