Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> GD i problem z tłem obrazka
athabus
post
Post #1





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

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


Witajcie,

mam problem z GD. Na localhost działa wszystko poprawnie, natomiast na serwerze produkcyjnym od kilku dni mam problem (przez 2 lata działało dobrze).

Problem polega na tym, że generuje obrazek z tłem o określonym kolorze np. czerwonym. Pierwsze wywołanie skryptu generuje czerwony prostokąt, ale każde następne już czarny. Po wgraniu pliku przez ftp sytuacja się powtarza - tj. pierwszy raz daje właściwy rezultat, potem już zawsze czarny prostokąt.

Uprościłem maksymalnie skrypt do postaci jak poniżej i problem dalej występuje.

  1. <?php
  2. $im=imagecreatetruecolor(150, 150);
  3. $color=imagecolorallocate($im,255,100,100); //kolor jasno czerwony prostokata
  4. imagefill($im, 0, 0, $color);
  5. $path= getcwd().'/test/123.jpg';
  6. imagejpeg($im, $path, 80);
  7. imagedestroy($im);
  8. ?>
  9.  
  10. <img src="/test/123.jpg">


Jak myślicie co może być przyczyną?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Kasyx
post
Post #2





Grupa: Zarejestrowani
Postów: 45
Pomógł: 7
Dołączył: 29.04.2009
Skąd: Kraków

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


Hmm jesli możesz to dodaj
  1. header('Content-type: image/jpeg');
  2.  


A prócz tego wygląda w porządku. jedyne co przychodzi mi do głowy to niewłaściwa wersja bibliotek GD, którą sprawdzisz funkcją gd_info();

Możesz jeszcze spróbować zapisać obrazek w innym formacie (tak dla testów). Może coś nie tak jest z jpeg'ami. Jak coś takiego znajdziesz, to będzie pole wyjścia do szukania konkretnego rozwiązania
Go to the top of the page
+Quote Post
athabus
post
Post #3





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

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


Dzięki Kasyx - próbowałem twoich rad ale nie pomogło. Z png też był problem.

Udało mi się jednak znaleźć przyczynę. Prawdopodobnie na serwerze produkcyjnym zostało zmienione GD i funkcja imagefill nie działała poprawnie z jakiegoś powodu. Zmieniłem ją na
  1. imagefilledrectangle($im,0,0,149,149,$color);

i póki co działa.
Nie pytajcie dlaczego bo nie wiem - przypuszczam że jakiś bug w GD.
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 - 19:12