Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> generowanie obrazkow w gd, problem z wyswietlaniem obrazka
-c0der-
post
Post #1





Goście







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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Majcok12
post
Post #3





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 20.02.2004

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Majcok12 7.08.2005, 09:07:58
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
-c0der-
post
Post #5





Goście







Rzeczywiscie moglem poszukac zanim zapytalem. Jednak wielkie dzieki, ze odpowiedzieliscie;)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 18:37