Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie działa GD
Forum PHP.pl > Forum > PHP
srob
Witam.

Mam taki problem, nie mogę wyświetlić obrazka wygenerowanego przez bibloteke GD.
W logach servera nie ma nic zero błedów. W phpinfo GD jest włączone.

Mój kod:
  1. $image = imagecreatetruecolor(100, 100);
  2. header("Content-Type: image/png");
  3. imagepng($image);
  4. imagedestroy($image);


w firefoxie pisze coś takiego:

"Obrazek "http://........./......" nie może zostać wyświetlony, ponieważ zawiera błędy."

Szukałem juz w google nic nie znalazłem.
Proszę o pomoc!
wookieb
Zapodaj link.
Albo zakomentuj header i zobacz jaki błąd Ci wywali.
srob
wywaliło coś takiego:
  1. PNG  ��� IHDR���d���d��������4IDATx��� ��� Om7������������������������������~ u��P9����IENDB`

flashdev
Usuń wszystkie spacje i entery przed '<?php'.
srob
nie ma spacji ani enterów sprawdziłem.

cala strona składa się z kilkudziesięciu plików php, może to być problemem? Jak mogę go wyeliminować, rozwiązać? Skrypt działa jak utworze jeden plik niezależny.
CuteOne
w index.php [lub pliku głównym] wstaw na początku skryptu ob_start() a na końcu ob_end_flush() powinno pomóc
srob
Nic nie dało. Dalej nie działa. Moze inny pomysł?
CuteOne
sprawdź to czy będzie działać:

  1.  
  2. $img = "sciezka_do_pliku/plik.jpg";
  3. header('Content-Type: image/jpg');
  4. $bcg = imagecreatefromjpeg($img);
  5. imagejpeg($bcg, null, 100);
  6.  


Cytat
Skrypt działa jak utworze jeden plik niezależny.

tzn?
srob
kod który podałeś nie działa te same objawy.

A co do pytania. To jak utworze plik index.php i wleje kod to wyświetla się obrazek!

Moja stronka składa się z kilku dziesięciu plików php może to jest powodem? Spacji i enterów przed
  1. <?php
nie ma.

Już brak mi pomysłów, google nie pomogło:)
Wicepsik
A jak próbujesz wyświetlić obrazek? Includujesz plik obrazka do innego pliku ?
srob
Kod wygląda tak który nie działa na mojej stronce a działa jak go wrzucę do pliki index.php:
  1. require_once ("jpgraph/jpgraph.php");
  2. require_once ("jpgraph/jpgraph_line.php");
  3. require_once ("jpgraph/jpgraph_bar.php");
  4. function readsunspotdata($aFile, &$aYears, &$aSunspots) {
  5. $lines = @file($aFile,FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
  6. if( $lines === false ) {
  7. throw new JpGraphException('Can not read sunspot data file.');
  8. }
  9. foreach( $lines as $line => $datarow ) {
  10. $split = preg_split('/[\s]+/',$datarow);
  11. $aYears[] = substr(trim($split[0]),0,4);
  12. $aSunspots[] = trim($split[1]);
  13. }
  14. }
  15. $year = array();
  16. $ydata = array();
  17. readsunspotdata('dane.txt',$year,$ydata);
  18. $width = 600; $height = 200;
  19. $graph = new Graph($width,$height);
  20. $graph->SetScale('intint');
  21. $graph->title->Set('Sunspot example');
  22. $graph->xaxis->title->Set('(year from 1701)');
  23. $graph->yaxis->title->Set('(# sunspots)');
  24. $lineplot=new LinePlot($ydata);
  25. $lineplot->SetFillColor('orange@0.5');
  26. $graph->Add($lineplot);
  27. $graph->Stroke();



Próbowałem też skrypt który korzysta z GD i te same objawy.
O to kod:

  1. $im=imagecreatetruecolor( 300, 200);
  2. $black=imagecolorallocate($im, 0, 0, 0);
  3. $lightgray=imagecolorallocate($im, 230, 230, 230);
  4. $darkgreen=imagecolorallocate($im, 80, 140, 80);
  5. $white=imagecolorallocate($im, 255, 255, 255);
  6. imagefilledrectangle($im,0,0,299,199 ,$lightgray);
  7. imagerectangle($im,0,0,299,199,$black);
  8. imagefilledellipse($im,150,100,210,110,$white);
  9. imagefilledellipse($im,150,100,200,100,$darkgreen);
  10. header('Content-type: image/png');
  11. imagepng($im);



Może cos robie nie tak?

Znalazłem rozwiązanie!:) Może mało profesjonalne ale działa.

Dla pierwszego listingu:
  1.  
  2. ....
  3. $graph->Stroke("graph.jpg");
  4.  
  5. echo ('<img src="graph.jpg?' .time(). '">');
  6.  


i dla drugiego:
  1.  
  2. $im=imagecreatetruecolor( 300, 200);
  3. $black=imagecolorallocate($im, 0, 0, 0);
  4. $lightgray=imagecolorallocate($im, 230, 230, 230);
  5. $darkgreen=imagecolorallocate($im, 80, 140, 80);
  6. $white=imagecolorallocate($im, 255, 255, 255);
  7. imagefilledrectangle($im,0,0,299,199 ,$lightgray);
  8. imagerectangle($im,0,0,299,199,$black);
  9. imagefilledellipse($im,150,100,210,110,$white);
  10. imagefilledellipse($im,150,100,200,100,$darkgreen);
  11. imagepng($im, 'test.png');
  12. echo ('<img src="test.png?' .time(). '">');
  13.  

Może inne sugestie?
wookieb
1) Włącz pełne raportowanie błędów
2) Daj link do skryptu
srob
witam.

Podaje link do skryptu jpgraph "http://jpgraph.net/".

Włączyłem pełne raportowanie błędów i nic nie ma. Zero błędów.
wookieb
Link do twojego skryptu.
jawka7
Sprawdz kodowanie i ustaw ANSI jesli jest inaczej
srob
Witam.

Gdzie zmienić? W edytorze?smile.gif
jawka7
tak w edytorze
srob
Nic nie dało. Pozostaje przy rozwiązaniu generowania pliku i później wyświetlenia go. Podobne rozwiązanie znalazłem w manualu skryptu.
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.