JpGraph erzeugen geht nur über Browser?

Hallo liebe Nutzer,

ich habe ein Problem an dem ich auch nach langer Suche nicht weiterkommt :frowning:

Ich habe mir ein Script geschrieben mit dem ich aus einer MySQL Datenbank mit JpGraph entsprechende PNGs erstellen kann. Das ganze klappt auch prima solange ich das Script über den Browser aufrufe, doch sobald ich das Script über IPS ausführe, wird nicht das Bild erstellt sondern es scheint so als würden die Binärdaten des Bildes als Text ausgegeben und eben keine Datei erstellt. Kann man IPS dazu bewegen ein Script wie ein Browser auszuführen?

Es gibt von JpGraph eine ganz gute Doku zu dem Thema: 5.2. What is an image?

Benötige ich das php command line?

Ich stehe da etwas auf dem Schlauch, bin über jede Hilfe dankbar!

Gruß
Tobias

Die jpGraph-Doku ist dein Freund:

// Example 1 : (Normal case) Stream back to browser
$graph->Stroke();

// Example 2 : Stream to the file with absolute file path
$graph->Stroke($fileName);

Hi sysrun,

leider gehts so auch nicht, denn so habe ich es ja gemacht:

$graph->Stroke($fileName);

es werden die Graphiken korrekt erstellt (und als File abgelegt) wenn ich das ganze über den Browser aufrufe, nicht jedoch wenn ich es über IPS ausführe.

Gruß
Tobias

Wie führst du es denn in IPS aus?

ich habe es auf div. Wege versucht, direkt aus dem Quellcode Editor, als Ereignis und aus anderen Scripten heraus mit IPS_RunScript(). Es geht nur wenn es über einen Browser aufgerufen wird.

Gruß
Tobias

Hallo,

jetzt habe ich noch mal versucht das Script über die php-cgi.exe direkt über die Kommandozeile auszuführen (wie auch in der Doku von JpGraph beschrieben und auch hier werden die Bilder korrekt erstellt. Ich verstehe nicht wieso das nicht über IPS geht.
Es muss doch irgentwie auch eine Möglichkeit geben das Erstellungen über das Script mit IPS direkt auszulösen.

Gruß
Tobias

Das geht problemlos, ich zeichne damit Graphen von Heizungen und Oelstand.

Anfangs hatte ich auch Probleme und hatte irgendwann die Loesung gefunden. Ich weiss nur nicht mehr sicher, was es war.

So generiere ich den Graph:

  
$graph = new Graph(240,150,"png");
...
$graph->Stroke("..\media\heizung_".$title.".png");

Versuch mal das „png“ als dritten Parameter, falls Du das nicht hast, ich bin der Meinung, da irgendwo lag das Problem…

Hallo Thomas,

vielen Dank, genau hier lag die Ursache. Aber komisch das alle anderen Wege das auszuführen dennoch ohne Probleme klappen. Ich hatte gerade alles auf die Kommandozeile umgestellt und diese dann mit IPS_ExecuteEx() ausgeführt, ging dann auch ist aber letztendlich ein umständlicher Weg.

Ein tolles Forum!

Gruß
Tobias

Ich hatte damals auch ewig gesucht und hatte auch rausgefunden, warum das so war. Habe eben nochmal danach gesucht, es aber spontan nicht gefunden.

Gibt man den Parameter nicht an, steht er bei einer Default-Konfiguration von jpgraph auf „auto“ und irgendwie schafft er es dann nicht, das vernuenftig umzusetzen.

Auf jeden Fall freue ich mich, dass ich hier auch mal weiterhelfen konnte, bisher habe ich immer nur „konsumiert“ und das Forum „genossen“ :slight_smile: