LXIII. Grafik-Funktionen
Mit PHP können Sie nicht nur HTML ausgeben, sondern auch Grafiken in
vielen Formaten - wie gif, png, jpg, wbmp, und xpm - erzeugen und/oder
manipulieren. Noch besser, Sie können Grafiken mit PHP direkt als
Datenstrom ausgeben. Damit das funktioniert, müssen Sie
PHP mit der GD-Bibliothek zur Grafikbearbeitung kompilieren. GD und PHP
benötigen, je nachdem mit welchen Grafikformaten Sie arbeiten wollen,
zusätzliche Bibliotheken.
Sie können die Grafikfunktionen in PHP auch verwenden, um die Größe von
JPEG, GIF,
PNG, SWF,
TIFF und JPEG2000 Grafiken zu
bestimmen.
Anmerkung:
Im Abschnitt über die Anforderungen können Sie nachlesen, wie Sie die
Möglichkeiten zur Grafikbearbeitung erweitern können: lesen, schreiben
und manipulieren von Grafiken, und auslesen von Metadaten, bei Bildern
die mit einer Digitalkamera aufgenommen wurden.
Mit der GD Bibliothek (verfügbar unter http://www.boutell.com/gd/) können Sie auch Grafiken erzeugen und
manipulieren.
Die mittels dieser Funktionen veränderbaren Grafik-Formate hängen davon
ab, welche Version von GD Sie installieren und welche
zusätzlich Biblioitheken GD benötigt um mit diesen
Formaten umgehen zu können. GD-Versionen älter als
gd-1.6 unterstützen GIF aber kein PNG. Neuere Versionen als gd-1.6 und
ältere als gd-2.0.28 unterstützen PNG, aber kein GIF. In gd-2.0.28 gibt
es erstmals wieder Unterstützung für GIF.
Anmerkung:
Seit PHP 4.3 ist eine Version der GD-Bibliothek in PHP enthalten.
Diese gebündelte Version bietet zusätzliche Möglichkeiten, wie z.B.
alpha blending und sollte der externen Version immer vorgezogen werden
(der Code wird besser betreut und ist stabiler).
Sie können GD erweitern, um mehr Grafikformate zu verwenden.
Tabelle 1. Unterstützte Grafikformate | Grafikformat | Download der benötigten Bibliothek | Anmerkungen |
|---|
| gif | |
Wird nur von GD-Versionen älter als gd-1.6 und neuer als gd-2.0.28
unterstützt. Nur-lesende Unterstützung von GIF
gibt es ab PHP 4.3.0 und der gebündelten GD-Version.
Schreibende Unterstützung steht ab den
Versionen PHP 4.3.9 und PHP 5.0.1 zur Verfügung.
| | jpeg-6b | ftp://ftp.uu.net/graphics/jpeg/ | | | png | http://www.libpng.org/pub/png/libpng.html |
Nur von GD-Versionen neuer als gd-1.6. unterstützt.
| | xpm | ftp://metalab.unc.edu/pub/Linux/libs/X/!INDEX.html |
Falls auf Ihrem System eine X-Umgebung installiert ist, steht Ihnen
diese Bibliothek wahrscheinlich schon zur Verfügung.
|
Sie können GD erweitern, um unterschiedliche Schriften zu verwenden. Die
folgenden Schriftbibliotheken werden unterstützt.
Tabelle 2. Unterstützte Schriftbibliotheken
Falls Sie PHP mit der Option
--enable-exif konfiguriert und
übersetzt haben, können Sie Informationen im Kopfbereich von
JPEG und TIFF Grafiken verarbeiten.
Wie schon weiter oben erwähnt, eröffnet Ihnen diese Option die
Möglichkeit Metadaten von Bildern zu verarbeiten, die mit Digitalkameras
erzeugt wurden. Diese Funktionen benötigen nicht die
GD-Bibliothek.
To enable GD-support configure PHP
--with-gd[=DIR], where DIR is the GD base
install directory. To use the recommended bundled version of the GD library
(which was first bundled in PHP 4.3.0), use the configure option
--with-gd.
GD library requires libpng and
libjpeg to compile.
In Windows, you'll include the GD2 DLL php_gd2.dll as
an extension in php.ini. The GD1 DLL php_gd.dll was
removed in PHP 4.3.2. Also note that the preferred truecolor image
functions, such as imagecreatetruecolor(), require GD2.
To disable GD support in PHP 3 add
--without-gd to your configure line.
Enhance the capabilities of GD to handle more image formats by specifying
the --with-XXXX configure switch to your PHP configure
line.
Tabelle 3. Supported image formats | Image Format | Configure Switch |
|---|
| jpeg-6b |
To enable support for jpeg-6b add
--with-jpeg-dir=DIR.
| | png |
To enable support for png add
--with-png-dir=DIR. Note, libpng
requires the zlib library,
therefore add --with-zlib-dir[=DIR]
to your configure line.
| | xpm |
To enable support for xpm add
--with-xpm-dir=DIR. If configure
is not able to find the required libraries, you may add the path to
your X11 libraries.
|
Anmerkung:
When compiling PHP with libpng, you must use the same version that was
linked with the GD library.
Enhance the capabilities of GD to deal with different fonts by specifying
the --with-XXXX configure switch to your PHP configure
line.
Tabelle 4. Supported font libraries | Font library | Configure Switch |
|---|
| FreeType 1.x |
To enable support for FreeType 1.x add
--with-ttf[=DIR].
| | FreeType 2 |
To enable support for FreeType 2 add
--with-freetype-dir=DIR.
| | T1lib |
To enable support for T1lib (Postscript Type 1 fonts) add
--with-t1lib[=DIR].
| | Native TrueType string function |
To enable support for native TrueType string function add
--enable-gd-native-ttf.
|
There are no image specific configurations but you may be interested in the
exif extension directives.
Diese Erweiterung definiert keine Resource-Typen. Folgende Konstanten werden von dieser
Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder
statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.
Beispiel 1. PNG erzeugen mit PHP |
<?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);
?>
|
|
Dieses Beispiel würde von einer Seite über einen Link wie
<img src="button.php?text=text"> aufgerufen.
Das oben aufgezeigte Beispielskript button.php nimmt den Text "text"
entgegen und legt diesen über ein vorhandenes Bild, in diesem Fall
"images/button1.png" und gibt die resultierende Grafik aus.
Diese Vorgehensweise ist sehr zweckmäßig, wenn Sie vermeiden wollen, dass
Sie immer wieder neue Button-Grafiken erstellen müssen, falls Sie die
Beschriftung eines Buttons ändern wollen. Mit der vorgestellten Methode
werden Ihr Buttons, samt Beschriftung, dynamisch generiert.
- Inhaltsverzeichnis
- gd_info -- Retrieve information about the currently installed GD library
- getimagesize --
Ermittelt die Ausmaße einer GIF-, JPEG-, PNG- oder
SWF-Grafik-Datei
- image_type_to_extension --
Get file extension for image type
- image_type_to_mime_type -- Get Mime-Type for image-type returned by getimagesize,
exif_read_data, exif_thumbnail, exif_imagetype
- image2wbmp -- Output image to browser or file
- imagealphablending -- Set the blending mode for an image
- imageantialias --
Should antialias functions be used or not
- imagearc -- Zeichnen einer Teil-Ellipse
- imagechar --
Stellt ein Zeichen mit horizontaler Ausrichtung dar
- imagecharup --
Zeichnet einen vertikal ausgerichteten Charakter
- imagecolorallocate -- Bestimmt die Farbe einer Grafik
- imagecolorallocatealpha -- Allocate a color for an image
- imagecolorat -- Ermittelt den Farbwert eines Bildpunktes
- imagecolorclosest --
Ermittelt den Farbwert-Index, der den angegebenen Farben
am nächsten liegt
- imagecolorclosestalpha -- Get the index of the closest color to the specified color + alpha
- imagecolorclosesthwb --
Get the index of the color which has the hue, white and blackness nearest to the given color
- imagecolordeallocate -- Löscht eine Farbdefinition
- imagecolorexact --
Ermittelt den Index-Wert der angegebenen Farbe
- imagecolorexactalpha -- Get the index of the specified color + alpha
- imagecolormatch --
Makes the colors of the palette version of an image more closely match
the true color version
- imagecolorresolve --
Ermittelt den Index-Wert der angegebenen Farbe oder die
nächst mögliche Alternative dazu
- imagecolorresolvealpha --
Get the index of the specified color + alpha or its closest possible
alternative
- imagecolorset --
Setzt die Farbe für den angegebenen Paletten-Index
- imagecolorsforindex --
Ermittelt die Farbwerte einer angegebenen Farb-Palette
- imagecolorstotal --
Ermittelt die Anzahl der definierten Farben eines Bildes
- imagecolortransparent -- Definiert eine Farbe als transparent
- imageconvolution --
Apply a 3x3 convolution matrix, using coefficient div and offset
- imagecopy -- Kopiert einen Bildausschnitt
- imagecopymerge -- Copy and merge part of an image
- imagecopymergegray -- Copy and merge part of an image with gray scale
- imagecopyresampled -- Copy and resize part of an image with resampling
- imagecopyresized --
Kopieren und Ändern der Grösse eines Bild-Teiles
- imagecreate -- Erzeugt ein neues Bild
- imagecreatefromgd2 -- Create a new image from GD2 file or URL
- imagecreatefromgd2part -- Create a new image from a given part of GD2 file or URL
- imagecreatefromgd -- Create a new image from GD file or URL
- imagecreatefromgif --
Erzeugt ein neues Bild im GIF-Format, welches aus einer Datei
oder von einer URL gelesen wird
- imagecreatefromjpeg --
Erzeugt ein neues Bild im JPEG-Format, welches aus einer Datei
oder von einer URL gelesen wird
- imagecreatefrompng --
Erzeugt ein neues Bild im PNG-Format, welches aus einer Datei
oder von einer URL gelesen wird
- imagecreatefromstring -- Create a new image from the image stream in the string
- imagecreatefromwbmp -- Create a new image from file or URL
- imagecreatefromxbm -- Create a new image from file or URL
- imagecreatefromxpm -- Create a new image from file or URL
- imagecreatetruecolor -- Create a new true color image
- imagedashedline -- Zeichnen einer gestrichelten Linie
- imagedestroy -- Löscht ein Bild
- imageellipse -- Draw an ellipse
- imagefill -- Füllen mit Farbe ("flood fill")
- imagefilledarc -- Draw a partial ellipse and fill it
- imagefilledellipse -- Draw a filled ellipse
- imagefilledpolygon -- Zeichnet ein gefülltes Vieleck (Polygon)
- imagefilledrectangle -- Zeichnet ein gefülltes Rechteck
- imagefilltoborder --
Flächen-Farbfüllung ("flood fill") mit einer angegebenen Farbe
- imagefilter --
Applies a filter to an image
- imagefontheight -- Ermittelt die Font-Höhe
- imagefontwidth -- Ermittelt die Font-Breite
- imageftbbox -- Give the bounding box of a text using fonts via freetype2
- imagefttext -- Write text to the image using fonts using FreeType 2
- imagegammacorrect --
Anwendung einer Gamma-Korrektur auf ein GD-Bild
- imagegd2 -- Output GD2 image to browser or file
- imagegd -- Output GD image to browser or file
- imagegif --
Ausgabe eines Bildes an den Browser oder in eine Datei
- imageinterlace --
Schaltet die Interlaced-Darstellung eines Bildes an oder aus
- imageistruecolor -- Finds whether an image is a truecolor image
- imagejpeg --
Ausgabe des Bildes im Browser oder als Datei
- imagelayereffect --
Set the alpha blending flag to use the bundled libgd layering effects
- imageline -- Zeichnen einer Linie
- imageloadfont -- Lädt einen neuen Font
- imagepalettecopy -- Copy the palette from one image to another
- imagepng --
Ausgabe eines Bildes an den Browser oder in eine Datei
- imagepolygon -- Zeichnen eines Vielecks (Polygon)
- imagepsbbox --
Ermittelt die Ausmaße des Rechtecks, das für die Ausgabe eines
Textes unter Verwendung eines PostScript-Fonts (Typ 1) notwendig
ist.
- imagepsencodefont --
Ändert die Vektor-Beschreibung eines Fonts
- imagepsextendfont -- Vergrößert oder komprimiert einen Font
- imagepsfreefont --
Gibt den durch einen Typ 1 PostScript-Font belegten Speicher
wieder frei
- imagepsloadfont --
Lädt einen Typ 1 PostScript-Font aus einer Datei
- imagepsslantfont -- Setzt einen Font schräg
- imagepstext --
Ausgabe eines Textes auf einem Bild unter Verwendung von
Typ 1 PostScript-Fonts
- imagerectangle -- Zeichnet ein Rechteck
- imagerotate -- Rotate an image with a given angle
- imagesavealpha --
Set the flag to save full alpha channel information (as opposed to
single-color transparency) when saving PNG images
- imagesetbrush -- Set the brush image for line drawing
- imagesetpixel -- Setzt ein einzelnes Pixel
- imagesetstyle -- Set the style for line drawing
- imagesetthickness -- Set the thickness for line drawing
- imagesettile -- Set the tile image for filling
- imagestring -- Zeichnet einen horizontalen String
- imagestringup -- Zeichnet einen vertikalen String
- imagesx -- Ermittelt die Bild-Breite
- imagesy -- Ermittelt die Bild-Höhe
- imagetruecolortopalette -- Convert a true color image to a palette image
- imagettfbbox --
Ermittelt die Rahmenmaße für die Ausgabe eines Textes
im True-Type-Format
- imagettftext -- Erzeugt TTF-Text im Bild
- imagetypes --
Gibt die von der aktuell verwendeten PHP-Version unterstützten
Grafik-Formate zurück
- imagewbmp -- Output image to browser or file
- imagexbm --
Output XBM image to browser or file
- iptcembed -- Embed binary IPTC data into a JPEG image
- iptcparse --
Parse a binary IPTC http://www.iptc.org/
block into single tags.
- jpeg2wbmp -- Convert JPEG image file to WBMP image file
- png2wbmp -- Convert PNG image file to WBMP image file
|