Einführung in die gdLibrary (gdLib)

Bildfilter

Es muss nicht immer Photoshop sein. Seit php 5 kann man Fotos Filter zuweisen – ähnlich wie mit Adobe Photoshop – und diese so direkt bearbeiten. Mit dem Befehl imagefilter() stehen elf geeignete Filter zur Verfügung. An Hand des Fotos der Ente aus dem Zoo Hannover, welches ich 2005 gemacht hatte, zeige ich hier, was man mit ihnen anstellen kann.

Das Originalfoto mit der Ente aus dem Zoo Hannover.

Codebeispiel

Allen Beispielen auf dieser Seite liegt folgender Code vor. Tauscht zur Nachahmung einfach den Befehl imagefilter aus, um zu dem gewünschtem Resultat zu kommen.

  1. <?php
  2.  
  3. $image = imagecreatefromjpeg('ente.jpg');
  4. imagefilter($image, IMG_FILTER_BRIGHTNESS, 100);
  5. header('content-type: image/jpeg');
  6. imagejpeg($image);
  7. imagedestroy($image);
  8.  
  9. ?>

Helligkeit regulieren

Es kommt ja mal vor, dass man beim Fotografieren nicht optimale Lichtverhältnisse vorfindet. imagefilter($image, IMG_FILTER_BRIGHTNESS, 100); hellt unsere Ente auf. Mit dem dritten Paramter kann man eine Zahl zwischen -255 (schwarz / dunkel), über 0 (keine Veränderung) bis 255 (weiß / hell) angeben, wobei höhere Zahlen eine stärke Helligkeit bedeutet. Hier das Resultat:

Helligkeit mit der Stärke 100.

Kontrast einstellen

Wer an der Helligkeit rumspielt, sollte auch den Kontrast justieren. Mit imagefilter($image, IMG_FILTER_CONTRAST, 255); geht das ganz gut. Der dritte Paramter wartet auch hier auf eine Zahl zwischen -255 und 255.

Scharfe Ente: Kontrast auf 255.

In Graustufen umwandeln

Schwarzweißfotos sind auch in Zeiten von digitalen Fotos sehr begehrt. imagefilter($image, IMG_FILTER_GRAYSCALE); macht Schluss mit den bunten Farbbildern.

Graustufenbild unserer Ente.

Foto kolorieren

Für diejenigen, die doch auf Farben stehen, sei der Filter imagefilter($image, IMG_FILTER_COLORIZE, 100, 10, 0); angeraten. Mit ihm kann man das Bild ganz kolorieren. Die Parameter drei bis fünf definieren den Farbwert der Faren Rot, Blau, Grün (RGB).

Ente koloriert mit den Werten 100, 10, 0.

Farben negieren / umkehren

Ich weiß nicht, ob ich in Photoshop jemals die Farben eines Fotos negiert habe. Für diejenigen, die es mit php machen wollen, nutzen bitte imagefilter($image, IMG_FILTER_NEGATE);. Dies kehrt alle Farben in ihr Negatives um.

Negatierte (arme) Ente.

Kanten hervorheben

Die Zeiten von Reliefbildern sind vorbei. Wer noch heute welche erstellen möchte, verwendet am besten den Filer imagefilter($image, IMG_FILTER_EDGEDETECT);.

Die Kanten des Fotos haben wir mit diesem Filter hervorgehoben.

Foto prägen

So schnell erstellt man einen 3D-Effekt: imagefilter($image, IMG_FILTER_EMBOSS);.

3D-Effekt.

Weichzeichner

Der Gaußscher Weichzeichner ist in Photoshop der beliebteste für die Erzeugung von weichen Schatten. Auch php bietet mit imagefilter($image, IMG_FILTER_GAUSSIAN_BLUR); diesen Filter. Da wir leider keine Möglichkeit haben, den Grad der Unschärfe über einen dritten Paramter zu definieren, müssen wir den Filter mehrmals hintereinander anwenden. Das kostet aber kaum Performance.

Gaußscher Weichzeichner 12 Mal angewendet.

Zeichenfilter

Die Maler unter uns sollten sich mit imagefilter($image, IMG_FILTER_MEAN_REMOVAL); näher beschäftigen. Dieser Filter gibt unserer Ente einen Effekt, wie er beim Zeichnen entsteht.

12 x im Einsatz: Selectiver Weichzeichner.

Bild glätten

Wenig Effekt bringt der Filter imagefilter($image, IMG_FILTER_SMOOTH, 5);. Dieser glättet das Bild etwas, den Grad bestimmt der dritte Parameter, wobei hier ein Wert zwischen 0 und 10 schon ausreicht.

Glättung mit dem Faktor 5.
Die wichtigsten Befehle kurz im Überblick
  • imagefilter
    imagefilter(src_im, filtertype [, arg1 [, arg2 [, arg3]]])
    Wendet einen Filter auf das Bild an.
Downloads

Einführung in die gdLib | Version 2.0 alpha | 2005-10-07