Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: generowanie obrazkow w gd
Forum PHP.pl > Forum > Przedszkole
c0der
Witam, mam problem z wyswietleniem wygenerowanego wykresu w zaleznosci od parametru pobranego z bazy danych:
Kod
<?
       laczenie z baza etc. ..
      
        while ($wynik=mysql_fetch_array($sql_result))
         {
        
          $tytul=$wynik['tytul'];
          $tresc=$wynik['tresc'];
          $data=$wynik['data'];
          $procent=$wynik['procent'];
        
          echo '<br/><div class="prj_wew" >';
          echo "Nazwa:<strong>$tytul</strong>Data rozpoczecia: $data<br/>$tresc<br/>Procent zaawansowania prac nad projektem:<strong> $procent</strong> %";

$x=100;
$y=100;
$st=$procent;

$pol_x = 0.5 * $x;
$pol_y = 0.5 * $y;


$stopien_obliczony = 3.6 * $st;
$koncowy_st = 360 - $stopien_obliczony;


// obrazek
$image = imagecreate($x, $y);

//kolory
$tlo      = imagecolorallocate($image, 173, 216, 230);
$wolny    = imagecolorallocate($image, 0, 0, 200);
$cien_w   = imagecolorallocate($image, 0, 0, 120);
$zajety   = imagecolorallocate($image, 245, 0, 228);
$cien_z   = imagecolorallocate($image, 197, 0, 203);


//ustalenie tla obrazu
ImageFill($image,0,0,$tlo);


// cienie
for ($i = $pol_y+20; $i > $pol_y; $i--)
{
imagefilledarc($image, $pol_x, $i, $x, $pol_y, 0, $koncowy_st, $cien_w, IMG_ARC_PIE);
imagefilledarc($image, $pol_x, $i, $x, $pol_y, $koncowy_st, 360 , $cien_z, IMG_ARC_PIE);
}


// wykres
imagefilledarc($image, $pol_x, $pol_y, $x, $pol_y, 0, $koncowy_st, $wolny, IMG_ARC_PIE);
imagefilledarc($image, $pol_x, $pol_y, $x, $pol_y, $koncowy_st, 360 , $zajety, IMG_ARC_PIE);


// obrazek na ekran
header('Content-type: image/png');
imagepng($image,"wyk.png");
imagedestroy($image);

          echo '</div><br/>';
         }

        
       mysql_free_result($sql_result);
       mysql_close($connection);
?>


podejrzewam ze chodzi o header, ale nie wiem co dokladnie zrobic zeby to dzialalo..moze wogole tak nie wolno/nie powinno sie ?
Prosze o porade.

c0der
mike
Już to było miliardy razy na forum.

Przed użyciem funkcji header() nie można do przeglądarki wysłaś żadnych danych. Żadnego echo, nic. Nawet spacji pojedynczej.

Pokombinuj z czymś takim:
index.php
  1. <img src="image.php" />


image.php
  1. <?php
  2.  
  3. // jakieś tworzenie obrazka
  4.  
  5. header('Content-type: image/png');
  6. imagepng($image);
  7. imagedestroy($image);
  8.  
  9. ?>


I po drugie:
Jeżeli chcesz wysłać obrazek do przeglądarki to nie używaj w funkcji imagepng() drugiego parametru.
Majcok12
hm... a ob_start() i ob_end_flush() nie zalatwiloby sprawy ? bo ja np. wyswietlam w przegladarce html i pozniej uzywam header() i dziala bez problemowo z tymi funkcjami.
mike
Cytat(Majcok12 @ 2005-08-07 09:06:18)
hm... a ob_start() i ob_end_flush() nie zalatwiloby sprawy ?

Też wyjście, nawe nie takie złe.
Ale mniej przejrzyste winksmiley.jpg
c0der
Rzeczywiscie moglem poszukac zanim zapytalem. Jednak wielkie dzieki, ze odpowiedzieliscie;)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.