Hans Wittwer

Geschichten, die das Leben schrieb

Hinweise

Ad-hoc-Grafik

🏁

Wahrscheinlich führen viele Wege nach Rom. Doch wie wäre es, wenn PHP eine Grafik generieren und diese im .png-Format zurückgeben würde und diese Grafik dann wie alle anderen PNG-Bilder, angezeigt werden könnte?

Stell dir vor, PHP kann das von Haus aus.

Beispiel

Ad-hoc-Grafik

Genau, Grafiker würden das anders lösen. Doch was, wenn Du etwas herausfinden und nicht Zeit verbraten möchtest, dem Grafiker alles haarklein zu verklickern? Das kannst Du machen, wenn Du haargenau spezifizieren kannst, was Du benötigst. Kannst Du das oder möchtest Du mit kurzen Reparaturzyklen erst mal herausfinden, ob Deine Idee tauglich ist? Wenn ja, dann übe mit PHP.

Ja, ein Bild malen könnte man mit einem beliebigen Malprogramm. Wenn Du das Bild jedoch von Zuständen abhängig machen wolltest und Du keine pfannenfertige Anwendung zur Verfügung hast, die die gewünschte Funktionalität bietet, was dann? Dann mach es mit PHP!

Klicke im Browser mal auf Refresh. (Diese Seite neu laden.) Die ausgefüllte Ellipse ändert ihre Breite zufällig.

Übrigens: Wenn ich ein PHP-Script habe, etwa mit Formulareingaben, schreibe ich die Parameter, die für die Grafik relevant sind, in eine Datei im JSON-Format. Im PHP-Script, das im .png-Format antwortet und deshalb kein Formular beinhalten kann, lese ich diese JSON-Datei und berechne damit die Grafik.

Ich habe insbesondere das Brecher-Panel so gebaut.

Von der Idee zur brauchbaren Lösung ist es ein langer Weg. Die Krux besteht darin, dass Du Deine Ideen am besten kennst und es noch kein Kabel gibt, Deine Ideen verlustfrei einem Grafiker in sein Hirn zu transportieren. Die Interpretation Deiner Idee kannst Du auch nicht transportieren. Das sind übrigens die Hauptgründe, dass Projekte zu dermassen vielen Diskussionen führen.

Ein klassischer Versuch ist, ein Pflichtenheft basierend auf einer Idee und ohne Simulation zu schreiben. Derartiges Vorgehen sprengt das Projekte mit hoher Wahrscheinlichkeit.

Ich ziehe Simulationen vor, dabei lernt man die Knacknüsse der Idee kennen, bevor man definitiv zu bauen beginnt. Der Initiator der Idee lernt dadurch, die Theorie hinter seinen Prozessen kennen zu lernen. Es gibt eine Sorte Wissen, das man mit tun erlangt und durch drüber lesen nicht erlangen kann. Eine Simulation dient dazu, weil daraus mehr zu erkennen ist, als aus einer reinen Beschreibung. Erkenntnisse aus der Simulation sind hochwertiger Input, um ein Pflichtenheft zu schreiben.

Schritt für Schritt

Bilder generiere ich mit PHP und das geht so:

  1. In einer .php-Datei definiere ich das Bild und antworte mit dem Inhaltstyp image/png
  2. In der .html-Datei binde ich das Bild ein

<php?

// Variablen setzen
$breite = 320;
$hoehe = 240;

// Bild erzeugen ...
$image = imagecreatetruecolor($breite, $hoehe);

// Das Bild ausgeben
header("Content-type: image/png");
imagepng($image);

// Den Speicher freigeben
imagedestroy($image);

Einbinden in der .html-Datei

<img src="https://hanswittwer.ch/try/bild1.php" alt="Bild">

Dann kommt eine schwarze Fläche in der Grösse 320 × 240 Pixel heraus. Format 4:3

Bild

Was Du einfüllen willst, kannst Du frei entscheiden. Mit den in PHP mitgelieferten Standardfunktionen in der PHP GD-Bibliothek kannst Du annähernd grenzenlos tüfteln.

Beispiel

Bild

Berechnungen mit PHP, um die gewünschten Pixel in der gewünschten Farbe am gewünschten Ort hinzupflanzen. GD bietet Pixel, Linien, Rechtecke, Ellipsen, Polygone, Schriften und Farben. Wenn Du anstehst, übe weiter …

Übrigens, siehst Du das rote Pixel im gelben Polygon?

Zurück zum Inhaltsverzeichnis