mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-27 22:38:55 +00:00

- 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
240 lines
7.8 KiB
XML
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: <img
|
|
src="button.php?text=text">. The above button.php script
|
|
then takes this "text" string and overlays it on top of a
|
|
base image which in this case is "images/button1.png"
|
|
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
|
|
-->
|