generiertes bild als img src verwenden
brandy
- php
Hallo *
Ich generiere ein png und moechte dieses wieder verwenden, ohne es auf der Platte zwischenspeichern zu muessen.
Wie kann ich das anstellen? Am besten noch mit einer cache Funktion, in der mir nicht nur das eine Bild sondern die letzten xx Bilder oder alle in dieser session erzeugten Bilder zur Verfuegung stehen.
Mein bisheriger code sieht so aus (hier wird das Bild allerdings auf der platte gespeichert).
$image=imagecreatetruecolor($WIDTH1,$HEIGHT1) or die("Cannot Initialize new GD image stream");
...
...
imagepng ($image, "test3.png");
...
...
echo "<map name="graph">";
...
...
echo "<area shape="rect" coords="$xs, $ys, $xe, $ye" href="http://$alt/" alt="$alt">";
...
echo "</map>";
echo "<p><img src="./test3.png" alt="Graph" usemap="#graph"></p>";
thx
brandy
hi,
Ich generiere ein png und moechte dieses wieder verwenden, ohne es auf der Platte zwischenspeichern zu muessen.
Wie kann ich das anstellen? Am besten noch mit einer cache Funktion, in der mir nicht nur das eine Bild sondern die letzten xx Bilder oder alle in dieser session erzeugten Bilder zur Verfuegung stehen.
Und was eignet sich zum "Cachen" von Daten?
Am besten das Dateisystem (im Hauptspeicher halten stünde hier vom Aufwand ja in keinem Verhältnis zum Nutzen).
Mein bisheriger code sieht so aus (hier wird das Bild allerdings auf der platte gespeichert).
Gut.
Und warum willst du daran etwas ändern?
Wenn du das Bild nur einmal "benutzen" willst - dann könntest du die Adresse des Bild-ausgebenden Scriptes natürlich im src-Attribut eines <img> angeben - aber dann ist ohne weiteres Zutun nix mit Caching.
gruß,
wahsaga
Und was eignet sich zum "Cachen" von Daten?
Am besten das Dateisystem (im Hauptspeicher halten stünde hier vom Aufwand ja in keinem Verhältnis zum Nutzen).
Mein Ansatz war eher, warum etwas abspeichern, was ich auch im ram halten kann, da die Daten nur eine gewisse zeit vorgehalten werden sollen und ein Verlust nicht tragisch ist, stellt das fuer mich die optimalere Loesung dar...insofern es eine gibt...
Gut.
Und warum willst du daran etwas ändern?Wenn du das Bild nur einmal "benutzen" willst - dann könntest du die Adresse des Bild-ausgebenden Scriptes natürlich im src-Attribut eines <img> angeben - aber dann ist ohne weiteres Zutun nix mit Caching.
Daran habe ich auch schon gedacht, aber das leider geht nicht, weil:
Ich die Graphic mit jpgraph erzeuge und ich fuer die area shape's noch Daten vom jpgraph benoetige. Ich kann/muss also erst das bild erzeugen, damit ich fuer die area shape's die Daten bekomme um sie danach auf das vorher erzeugte Bild zu legen. Was ja wenn man im img src eine art imgvariable verwaenden koennte kein problem waere, auch ein zurueckgehen auf die Seite wuerde dann kein erneutes erzeugen der graphic verlangen.
Gruss
Brandy
hi,
Mein Ansatz war eher, warum etwas abspeichern, was ich auch im ram halten kann,
Im RAM bleiben die Daten eines PHP-Scriptes im Normalfall nur so lange, wie die Scriptinstanz läuft.
Du könntest natürlich zu sowas wie shared memory greifen - aber das halte ich in dem Fall für unnötig kompliziert und teuer.
Ich die Graphic mit jpgraph erzeuge und ich fuer die area shape's noch Daten vom jpgraph benoetige. Ich kann/muss also erst das bild erzeugen, damit ich fuer die area shape's die Daten bekomme um sie danach auf das vorher erzeugte Bild zu legen.
Die Daten hast du, bevor du das Bild erzeugst - sonst könntest du ja das Bild nicht erzeugen :-)
Ich sehe also nicht, was hier gegen eine Session-Lösung sprechen sollte - Daten werden im Hauptscript erzeugt/berechnet, dann kannst du dort auch die Areas für die Imagemap erzeugen.
Und per Session werden die Daten dann auch noch an das Script weitergereicht, welches das Bild erzeugt.
gruß,
wahsaga
Du könntest natürlich zu sowas wie shared memory greifen - aber das halte ich in dem Fall für unnötig kompliziert und teuer.
Ja zweifellos das waere etwas ueberdimensioniert und zu aufwendig.
Die Daten hast du, bevor du das Bild erzeugst - sonst könntest du ja das Bild nicht erzeugen :-)
Ich sehe also nicht, was hier gegen eine Session-Lösung sprechen sollte - Daten werden im Hauptscript erzeugt/berechnet, dann kannst du dort auch die Areas für die Imagemap erzeugen.
Und per Session werden die Daten dann auch noch an das Script weitergereicht, welches das Bild erzeugt.
Ok ich muss etwas weiter ausholen und erklaeren, was ich eigentlich will :)
Ich erzeuge eine graphic mit jpgraph, scale ist datlin, d.h. ein liniengraph bei dem die x-achse eine Zeitangabe darstellt. Ich moechte nun areas zwischen den majorticks auf der x-achse erstellen. Dazu lese ich direkt die Positionen der majorticks aus dem $graph object aus. Zumindest nach meinen Verstaendniss, muss ich zuerst die graphic erzeugen um an die majorticks zu kommen um danach die area aufzubauen und um danach das bild zu laden(welches ich nun dummerweise halt vor den areas erzeugen muss). Also habe ich die Daten fuer die Areas nicht schon vorher, da es keine Daten sind die ich zum erzeugen des graphen benoetige(aber das konntest du ja nicht wissen). Hoffentlich hab ich das eingiermassen Verstaendlich formulieren koennen.
mfg
brandy