PHP Grafiken mit dynamischem Text

Mit der Hilfe  vom PHP-Modul „GD“ (unter Debian / Ubuntu z.B. mit „apt-get install php5-gd“ zu installieren), ist es möglich dynamischen Text auf Grafiken anzuzeigen. Hierbei sind der Kreativität keine Grenzen gesetzt. Es ist z.B. möglich, dass der Text sich bei jedem Laden der Webseite ändert, oder aber dynamische Informationen wie die IP-Adresse auf der Grafik darstellt. Hier mal ein Beispiel mit eurer IP-Adresse:

Grafik nicht gefunden :-(

Um das Ganze zu nutzen, muss wie schon am Anfang gesagt das Modul „GD“ für PHP installiert und auch aktiviert werden (Neustart des Webservers nicht vergessen). Um dies nun aber effektiv nutzen zu können, ist neben PHP und Grafikdesign Kenntnissen, auch geringfügige Logik notwendig. Der Quellcode für die oben angezeigte Signatur-Grafik sieht wie folgt aus:

<?php
	if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] != '') 
		$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
	else
		$ip = $_SERVER['REMOTE_ADDR'];

	$imageBase = imageCreateFromPng('Signature-Large.png'); //Anpassen, wenn nicht PNG!
	$primaryForeground = imageColorAllocate($imageBase, 255, 0, 0);
	$secondaryForeground = imageColorAllocate($imageBase, 128, 128, 128);

	$background = imageColorAllocate($imageBase, 0, 0, 0);
	imageColorTransparent($imageBase, $background);
	imageAlphaBlending($imageBase, false);
	imageSaveAlpha($imageBase, true);

	imageString($imageBase, 3, 83, 50, 'Diese Signatur wurde für Deine IP (' .$ip. ') gesperrt, ', $primaryForeground);
	imageString($imageBase, 3, 83, 65, 'weil Du Deine GEMA Abgaben noch nicht GEZahlt hast.', $primaryForeground);
	imageString($imageBase, 3, 83, 80, 'Das tut Uns NICHT leid, Ihre GEMA.', $secondaryForeground);

	header("Content-type: image/png");
	imagePng($imageBase); //Anpassen, wenn nicht PNG!
	imageColorDeallocate($primaryForeground);
	imageColorDeallocate($secondaryForeground);
	imageColorDeallocate($background);
	imageDestroy($imageBase);
?>

Ich denke, dass das Meiste selbst erklärend ist. Mit der Methode „imageCreateFromPng“ laden wir unsere zuvor erstellte Grafik. Anschließend definieren wir mit „imageColorAllocate“ unsere Schriftfarben (Werte im RGB Angaben von 0 (0x00) bis 255 (0xFF)). Für den Fall, dass wir eine transparente PNG oder GIF Grafik verwenden, setzen wir mit dem folgenden Block (siehe Quellcode) unsere Transparenz auf aktiv. Mit der Methode „imageString“ werden anschließend die Texte auf der Grafik gerendert. Abschließend wird das Ganze nur noch ausgegeben, aufgeräumt und schon haben wir unsere Grafik.