PHP Image Generierung

PHP Image Generierung

Man kann mit PHP Bilder erstellen, je nach dem kann es aber auch sehr aufwendig werden.
Bei mir hat es mit Cologna ca. 5h gedauert ohne jemals zuvor Image genutzt zu haben.

Zuvor sollte man mal testen ob die GD Libary installiert ist.
[sourcecode lang=”php”]
if( function_exists("imagecreatetruecolor") ) {
print "GD library is enabled!";
}else {
print "GD library is not enabled!";
}
[/sourcecode]
Wenn nicht einfach nachinstallieren…
[sourcecode lang=”php”]
sudo apt-get install php5-gd
[/sourcecode]

Zu beachten sind auch die Mime-Typen.

Content-Type Description
image/gif GIF image
image/jpeg JPEG image
image/png PNG image

Man benötigt hierbei immer die jeweilgen Dateitypen.
Das wichtigsten funktionen liste ich hier einmal auf.

Funktion Beschreibung
imageline($image,$x1,$y1,$x2,$y2,$color) Zeichnet eine Linie von Punkt 1 ($x1,$y1) zu Punkt 2 ($x2,$y2)
imagesetpixel($image,$x,$y,$color) Markiert einen bestimmten Pixel auf dem Bild.
imagestring($image,$font,$x1,$y1,$string,$color) Malt den jeweiligen Text auf den Koordinaten.

Es gibt noch viele weiter, soviele das ich sie hier nicht auflisten werde. Aber hier kann man sie einsehen.

[sourcecode lang=”php”]
// Erstellt die Größe
$im = imagecreatetruecolor(400,200);

// Rote Farbe
$red = imagecolorallocate($im,255,0,0);

// Gelbe Farbe
$yellow = imagecolorallocate($im,255,255,0);

// Malt eine gelbe Linie von Links unten nach Rechts oben.
imageline($im,0,0,100,50,$yellow);

// Malt eine gelbe Linie von Links oben nach Rechts unten.
imageline($im,0,50,100,0,$yellow);

// Generiert eine 4 stellige Zahl
$rnd_num = rand(1111,9999);

// Malt den String, die Ziffern also auf das Bild
imagestring($im,5,50,10,$rnd_num,$red);

// Teilt dem Browser mit welcher Dateityp es ist.
header("Content-Type: image/png");

// Gibt das Bild aus.
imagepng($im);
[/sourcecode]

Ein Beispiel von mir kann man sich hier ansehen.


Cologna

Ein Problem was oft dabei auftaucht ist, das bei Fremden Seiten, als Bsp. Signatur nur Bilder mit korrekter Endung zugelassen wird.
Wir haben hier dann zum bsp. die image.php, WBB lässt aber nur image.png zu.

Htaccess hat die Lösung parat. :)
[sourcecode lang=”bash”]
^image.png$ image.php [QSA]
[/sourcecode]