Danzi: bild erzeugen mit php

hallo leute!

ich hab mit php ein bild erzeugt und will nun unter dem bild einen html text anfügen, jedoch funktioniert dass nicht so wie ich es will, da ja der dokumenttyp dann ein gif wird...
kann mir bitte jemand weiterhelfen?

Code:

<?php  
diagramm(10, "1KN:-30:rot, 2KN:20:schwarz, 3KN:5:gruen, 4KN:35:gelb, 5KN:10:lila, 6KN:10:lila, 7KN:10:lila", "m", 350, 200);  
  
function diagramm($abstand, $daten, $einheit, $breite, $hoehe)  
{  
  $schrift = 3;  
  $legende_abstand = 10;  
  
  $daten = explode(", ", $daten);  
  $werte = array();  
  $bezeichnungen = array();  
  $farben = array();  
  
  for($i=0; $i<sizeof($daten); $i++) {  
    $temp = explode(":", $daten[$i]);  
    array_push($bezeichnungen, $temp[0]);  
    array_push($werte, $temp[1]);  
    array_push($farben, $temp[2]);  
    if($abstand_text < imagefontwidth($schrift) * strlen($temp[0]))  
 $abstand_text = imagefontwidth($schrift) * strlen($temp[0]);  
  }  
  
  $abstand_text_h = imagefontheight($schrift);  
  
  $bild = imagecreatetruecolor($breite, $hoehe);  
  
  $farbe_hintergrund = imagecolorexact($bild, 245, 245, 245);  
  $farbe_text = imagecolorexact($bild, 0, 0, 0);  
  $farbe_zwischen = imagecolorexact($bild, 220, 220, 220);  
  
  $farbe_rot = imagecolorexact($bild, 255, 0, 0);  
  $farbe_gruen = imagecolorexact($bild, 0, 255, 0);  
  $farbe_schwarz = imagecolorexact($bild, 0, 0, 0);  
  $farbe_gelb = imagecolorexact($bild, 255, 255, 0);  
  $farbe_lila = imagecolorexact($bild, 255, 0, 255);  
  
  imagefill($bild, 0, 0, $farbe_hintergrund);  
  
  $balken_x = $abstand;  
  $balken_y = $hoehe - $abstand;  
  $balken_b = 2 * $abstand;  
  $diagramm_h = $hoehe - 2 * $abstand;  
  $balken_versatz = 0;  
  
  $legende_x = $balken_x + sizeof($werte) * $balken_b + (sizeof($werte) - 1) * $abstand + 2 * $abstand;  
  $legende_y = $hoehe - $abstand - $legende_abstand;  
  $legende_b = $legende_x + $legende_abstand;  
  $legende_h = $legende_y + $legende_abstand;  
  $legende_versatz = 0;  
  
  for($i=0; $i<sizeof($werte); $i++) {  
    $prozent = 100 / array_sum($werte) * $werte[$i];  
    $balken_h = $diagramm_h / 100 * $prozent;  
  
    $wert = $werte[$i]." ".$einheit;  
  
    $farbe = "farbe_".$farben[$i];  
  
    //imagefilledrectangle($bild, $balken_x + $balken_versatz, $abstand, $balken_x + $balken_versatz + $balken_b, $hoehe - $abstand, $farbe_zwischen);  
    //Diagramm zeichnen  
    imagefilledrectangle($bild, $balken_x + $balken_versatz, $balken_y - $balken_h, $balken_x + $balken_versatz + $balken_b, $balken_y, ${$farbe});  
    imagestring($bild, $schrift, $balken_x + $balken_versatz + 2, $balken_y - $balken_h - $abstand_text_h, $werte[$i], $farbe_text);  
  
    //Legende zeichnen  
    imagefilledrectangle($bild, $legende_x, $legende_y - $legende_versatz, $legende_b, $legende_h - $legende_versatz, ${$farbe});  
    imagestring($bild, $schrift, $legende_x + 2 * $legende_abstand, $legende_y - $legende_versatz, $bezeichnungen[$i], $farbe_text);  
    imagestring($bild, $schrift, $legende_x + 3 * $legende_abstand + $abstand_text, $legende_y - $legende_versatz, $wert, $farbe_text);  
  
    $balken_versatz = $balken_versatz + 3 * $abstand;  
    $legende_versatz = $legende_versatz + 2 * $legende_abstand;  
  }  
  
  header("Content-type: image/gif");  
  imagegif($bild);  
}  
?>

mfg Daniel

  1. ich hab mit php ein bild erzeugt und will nun unter dem bild einen html text anfügen, jedoch funktioniert dass nicht so wie ich es will, da ja der dokumenttyp dann ein gif wird...
    kann mir bitte jemand weiterhelfen?

    was du vorhast geht schlichtweg garnicht ;)

    erzeuge ein html-file und binde dein on-the-fly erzeugtes bild dort mittels img-element (oder als hintergrund per css ein)

    1. ich hab mit php ein bild erzeugt und will nun unter dem bild einen html text anfügen, jedoch funktioniert dass nicht so wie ich es will, da ja der dokumenttyp dann ein gif wird...
      kann mir bitte jemand weiterhelfen?

      was du vorhast geht schlichtweg garnicht ;)

      naja ...

      1. naja ...

        es gibt nur "geht" oder "geht nicht" - ein "geht in 40% der browser am markt" ist für mich ein "geht nicht" bei "geht in 95% der browser am markt" lasse ich mich schon eher zu "geht" überreden :D

  2. Hi,

    ich hab mit php ein bild erzeugt und will nun unter dem bild einen html text anfügen,

    die mir bekannten Grafikformate erlauben so etwas höchstens in Form eines Kommentars, der selbstverständlich nicht die Darstellung verändert - und üblicherweise als Klartext vorgesehen ist.

    jedoch funktioniert dass nicht so wie ich es will, da ja der dokumenttyp dann ein gif wird...

    Richtig. Ein Request hat exakt einen Response. Und wenn Du willst, dass das ganze auch in der Realität genutzt werden kann, hat dieser Response exakt einen Content-Type.

    kann mir bitte jemand weiterhelfen?

    Zwei Content-Types <=> zwei Responses <=> zwei Requests.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  3. Hallo,

    u.U. einen String zeichnen.
    mfg, Flo

    --
    Developers are dying. Computers are getting trash. CEO's become forgetten. The only remaining things are ideas, lies and crises. So if you want to be immortal, first think, than stop it and go to microsoft and become later a manager at Lehman Brothers...
    sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
    *Zu dem de:> Ich benutze wegen IE im moment noch tabellen, weil dieser display:table noch nicht versteht. Ich werde aber, wenn IE 6 & IE 7 < 10% mein neues CSS-Layout einspielen...