Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]GD wysyłanie obrazka
Forum PHP.pl > Forum > Przedszkole
acidm
Właśnie zacząłem naukę o GD2 w php i mam taki problem że obrazek nie wyświetla się w przeglądarce, firefox podpowiada że obraz jest uszkodzony, a na serwerze plik jest tworzony bez problemów.Testowałem na hostingu jak i localhoście .

  1. header("Content-Type: image/jpeg");
  2. $im = imagecreatetruecolor(120, 20);
  3. $bg = imagecolorallocate($im,255,255,0);
  4. $text_color = imagecolorallocate($im, 233, 14, 91);
  5. imagefill($im,0,0,$bg);
  6.  
  7. imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
  8. imagejpeg($im,"save.jpeg");
  9. imagejpeg($im);
  10. imagedestroy($im);
  11.  
toaspzoo
A tak ?
  1.  
  2. $im = imagecreatetruecolor(120, 20);
  3. $bg = imagecolorallocate($im,255,255,0);
  4. $text_color = imagecolorallocate($im, 233, 14, 91);
  5. imagefill($im,0,0,$bg);
  6.  
  7. imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
  8. imagejpeg($im,"save.jpeg");
  9. $im=imagejpeg($im);
  10. header("Content-Type: image/jpeg");
  11. echo $im;
klocu
Powiem krótko - działa.
Tylko musisz się zdecydować czy:
  1. imagejpeg($im,"save.jpeg");
  2. imagejpeg($im);

Wyrzucasz plik w sposób fizyczny na dysk (1 linia), czy zwracasz do przeglądarki (2 zapis).

--
co do
  1. $im=imagejpeg($im);

w/g dokumentacji zwraca TRUE on success or FALSE on failure więc zaproponowany zapis jest trochę - niezgodny z dokumentacją.

--
to gdzie wrzucisz headera to nie ma różnicy, byle przed drukowaniem czegokolwiek do przeglądarki
acidm
@toaspzoo nie działa
@klocu nie działa dalej (choć wydaje mi się że powinno, GD tworzy obraz ale nie mogę go wysłać)

  1. header("Content-Type: image/jpeg");
  2.  
  3. $im = imagecreatetruecolor(120, 20);
  4. $bg = imagecolorallocate($im,255,255,0);
  5. $text_color = imagecolorallocate($im, 233, 14, 91);
  6. imagefill($im,0,0,$bg);
  7. imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
  8. imagejpeg($im);
  9. imagedestroy($im);
klocu
Co mogę powiedzieć - badaj dokładnie element po elemencie:
- katalog php/ext - czy plik php_gd2.dll istnieje
- php.ini - czy GD2 włączone
- phpinfo() - czy GD2 załadowane
- z poziomu skryptu - wyrzuć dodawanie nagłówka (header), odpal i sprawdź w poszukiwaniu warningów

Akurat nie jest to wina kodu - ten nie powoduje problemów w mojej ocenie.
Wynikiem jest ciemno czerwony tekst na żółtym tle - w/g zapisów.
acidm
Sprawdziłem to co napisałeś i wszystko poustawiane jest.
Wsparcie dla wszelkich obrazkowych formatów tez.
Wyczyściłem pamięć przeglądarek -bez zmian.
Pododawałem nagłówki aby przeglądarka nie cachowała uszkodzonego obrazka przy testach .
Usunąłem nagłówek odpowiedzialny z typ mime i powyskakiwały krzaczki smile.gif .
Po wszelkich testach - brak pomysłów :|
darko
Upewnij się jeszcze czy nie wysyłasz czegokolwiek wcześniej do przeglądarki tuż przed wysłaniem nagłówka z informacją o obrazku (jakiekolwiek echo/print/var_dump/print_r etc.).
acidm
Znalazłem biggrin.gif
IDE (dreamweaver) dodawało BOM do dokumentu.
heh smile.gif
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.