Hier zeige ich euch, wie man eine einfache Grafik mit Text erstellt.
Achtung! Dazu muss die PHP-Erweiterung “php-gd” installiert sein.
(Auf den meißten Servern schon installiert)
Vorher erkläre ich die benötigten Funktionen:
-
imageCreate // Erzeugt eine neue Grafik. Als Parameter wird die Breite und Höhe in Pixeln erwartet.
-
imageColorAllocate // Erzeugt eine Farbe, die für das Bild verwendet werden kann.
-
// In diesem Fall erzeugt der erste Aufruf die Hintergrundfarbe.
-
imageString // Setzt einen Text auf das Bild
-
header // Setzt einen HTTP-HEADER Eintrag
-
imagegif // Gibt das Fertige Bild aus
-
imageDestroy // Gibt den Speicher des Bildes wieder Frei
Nun wollen wir ein schwarzes Bild (200×300 Pixel groß) mit
weißer Schrift erstellen.
Anmerkung: Die Farben werden in den RGB Kanälen angeben.
Diese haben einen Wert von 0 – 255. 0 = dunkel | 255 = hell
Und aus der Kombination Rot, Grün, Blau kann man X-Belibige Farben zusammenstellen.
Zuerst wird die Grafik mit der Größenangabe erzeugt.
“imageCreate” gibt dann als Ergebnis eine Referenz heraus,
die für die nächsten Schritte notwendig sind.
-
$im = imagecreate(200, 300); // Grafik erzeugen (200×300 Pixel)
Anschließend bereiten wir die Benötigten Farben vor.
Wir brauchen Schwarz als Hintergrundfarbe und Weiß als Textfarbe.
-
$black = imagecolorallocate($im, 0, 0, 0); // Farbe Schwarz erstellen (RGB Farbe: Rot = 0, Grün = 0, Blau = 0 => also schwarz)
-
$white = imagecolorallocate($im, 255, 255, 255); // Farbe Weiß erstellen (RGB Farbe: Rot = 255, Grün = 255, Blau = 255 => also weiß)
Nun schreiben wir einen Text, den wir per GET-Variable bekommen auf das Bild.
Die Funktion “imageString” erwartet die Grafikreferenz, die X-Position, die y-Position, die Schriftgröße, den Text und die Farbe.
-
imagestring($im, 2, 30, 40, $_GET['text'], $white);
Als letzten Schritt wollen wir das Bild im GIF-Format dem Browser zurückgeben.
Dazu müssen wir noch einen HTTP-Header Eintrag hinzufügen, damit der Browser weiß, dass
es ein GIF Bild ist, was jetzt kommt.
Anschließend zeigen wir mit “imageGif” das Bild an.
Zuletzt wird der für das Bild reserviertem Speicher mit “imageDestroy” freigegeben.
Wichtig: Ein Header kann nicht mehr gesetzt werden, wenn schon Ausgaben erfolgt sind.
z.B. würde ein Fehler auftreten, wenn man vor einem “header” aufruf schon daten (z.B. per “echo”) rausgibt.
-
header(‘Content-type: image/gif’);
-
imagegif($im);
-
imageDestroy($im);
Wenn wir das Script unter bild.php speichern und im Browser
mit “http://deineURL/bild.php?text= PHP%20Bild” aufrufen,
erhalten wir ein schwarzes GIF-Bild mit dem Text “PHP Bild”.
Für weitere Fragen stehe ich über das Kontaktformular zur Verfügung.