Grundlagen für das zeichnen mit PHP

Mit ein paar erlernten Grundlagen ist es wirklich einfach mit PHP zu zeichnen. Es gibt verschiedene Dinge, wo man dieses benötigt, jedoch ist es sehr rechenintensiv. Ich zeige dir in diesem Tutorial, für was man das zeichnen nutzen kann und wobei es eher unangebracht ist. Zudem zeige ich ein paar Grundregeln und erläutere, wie das ganze funktioniert.

Für was nutzt man das zeichnen mit PHP?

  • Wasserzeichen als Text
    Bei dem Bildupload, kannst du dein Wasserzeichen als String Text mit einbrennen. Änderungen sind dann aber nicht mehr möglich.
  • Statistiken zeichnen
    Mit den nachfolgenden Tutorials lernst du das zeichnen von einem Raster, Liniendiagramme und Balkendiagramme. Diese kannst du für deinen Admin-Bereich nutzen oder zum präsentieren für deine Leser. So mache ich dies teilweise auch (neben Google Analytics, was ist das?).

Zeichnen mit PHP: Balkendiagramm

Zeichnen mit PHP: Balkendiagramm


Wofür du die Zeichenfunktionen nicht nutzen solltest, ist bei Besucher, die beim Seite laden auch das Script für die Zeichenfunktion ausführt. Der Server leidet sehr darunter die Bilder zu erstellen und das Script zu kompilieren. Wasserzeichen sollten auch nicht bei jedem laden eines Bildes neu geschrieben werden. Die Ideale Lösung liegt bei einem Screenshot oder der Speicherung eines generierten PHP-Bildes.

Wie funktioniert die Zeichenfunktion und was ist zu beachten?

Mit der Funktion imagepng() wird ein PNG Bild ausgegeben, welches vorher als Resource von imagecreate() erstellt wurde. Das Script wird also komplett als Bild ausgegeben. Um dieses Problem zu umgehen, ist ein geschlossenes Script als einzelne Datei ideal. So kann von einer anderen Datei mittels HTML -Element die Datei angesteuert werden, die das Bild generiert. Ebenso können GET Variablen übergeben werden.

Beispiel:
  • bild.php - darin wird das Bild generiert
  • beliebig.php - darin könnten wir schreiben, dann wird es als Bild von bild.php geladen.

Bedenke, das du keine Fehler angezeigt bekommst. Ebenso kannst du für das Debuging keine Variablen oder Array-Werte ausgeben lassen - das Bild wird dann einfach nicht angezeigt, ähnlich eines defekten Bildes (broken image).