File: reference.xml

package info (click to toggle)
php-doc 20061001-1
  • links: PTS
  • area: non-free
  • in suites: etch, etch-m68k
  • size: 45,764 kB
  • ctags: 1,611
  • sloc: xml: 502,485; php: 7,645; cpp: 500; makefile: 297; perl: 161; sh: 141; awk: 28
file content (230 lines) | stat: -rw-r--r-- 7,322 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.27 $ -->
<!-- Purpose: utilspec.image -->
<!-- Membership: bundled -->

<reference id="ref.image">
 <title>Image Functions</title>
 <titleabbrev>Image</titleabbrev>

 <partintro>
   <section 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>
     <note>
      <simpara>
       Read requirements section about how to expand image capabilities
       to read, write and modify images and to read meta data of pictures
       taken by digital cameras.
      </simpara>
     </note>
    </para>
   </section>

   <section id="image.requirements">
    &reftitle.required;
    <para>
     If you have the <acronym>GD</acronym> library (available at <ulink
     url="&url.gd;">&url.gd;</ulink>) 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 avaliable since
          PHP 4.3.9 and PHP 5.0.1.
         </entry>
        </row>
        <row>
         <entry><literal>jpeg-6b</literal></entry>
         <entry><ulink url="&url.jpeg;">&url.jpeg;</ulink></entry>
         <entry></entry>
        </row>
        <row>
         <entry><literal>png</literal></entry>
         <entry><ulink url="&url.libpng;">&url.libpng;</ulink></entry>
         <entry>
          Only supported in GD versions greater than gd-1.6.
         </entry>
        </row>
        <row>
         <entry><literal>xpm</literal></entry>
         <entry><ulink url="&url.libxpm;">&url.libxpm;</ulink></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><ulink url="&url.freetype;">&url.freetype;</ulink></entry>
         <entry>Support removed as of PHP 6.0.0</entry>
        </row>
        <row>
         <entry><literal>FreeType 2</literal></entry>
         <entry><ulink url="&url.freetype;">&url.freetype;</ulink></entry>
         <entry></entry>
        </row>
        <row>
         <entry><literal>T1lib</literal></entry>
         <entry><ulink url="&url.t1lib;">&url.t1lib;</ulink>)</entry>
         <entry>
          Support for Type 1 fonts.
         </entry>
        </row>
       </tbody>
      </tgroup>
     </table>
    </para>

    <para>
     If you have PHP compiled with <option role="configure">--enable-exif</option>
     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 as mentioned above. These
     functions do not require the <acronym>GD</acronym> library.
    </para>
   </section>

   &reference.image.configure;

   &reference.image.ini;

   <section id="image.resources">
    &reftitle.resources;
    &no.resource;
   </section>

   &reference.image.constants;

   <section 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
-->