Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]przetwarzanie obrazka:
Forum PHP.pl > Forum > Przedszkole
stefik4
Witam!

Posiadam taki obrazek: http://i54.tinypic.com/33ud2fp.jpg.

i na stronie przepuszczam go przez następujące funkcje:

  1. $image = imagecreatefromgif($obraz);
  2.  
  3. $plik_ww = imagesx($image);
  4. $plik_hh = imagesy($image);
  5.  


I otrzymuję następujące komunikaty błędów:

  1. Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg: JPEG library reports unrecoverable error: in /home/speedway/domains/speedway-world.pl/public_html/teest.php on line 201
  2.  
  3. Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: 'http://i54.tinypic.com/33ud2fp.jpg' is not a valid JPEG file in /home/speedway/domains/speedway-world.pl/public_html/teest.php on line 201
  4.  
  5. Warning: imagesx(): supplied argument is not a valid Image resource in /home/speedway/domains/speedway-world.pl/public_html/teest.php on line 207
  6.  
  7. Warning: imagesy(): supplied argument is not a valid Image resource in /home/speedway/domains/speedway-world.pl/public_html/teest.php on line 208


Zupełnie nie wiem dlaczego. Obrazek ma rozszerzenie JPG, funkcja jest JPEG wiec powinno być ok a to wywala mi błąd ;/
zegarek84
Cytat(stefik4 @ 17.10.2010, 18:42:29 ) *
Zupełnie nie wiem dlaczego. Obrazek ma rozszerzenie JPG, funkcja jest JPEG wiec powinno być ok a to wywala mi błąd ;/
kliknij prawym myszki na obrazku - rozszerzenie mało ważne, ważniejsze nagłówki w przeglądarce...
Typ: Obrazek PNG

nagłówek w przeglądarce:
Content-Type: image/png


na początku zanim na nagłówki popatrzałem, to myślałem, że to jest na redirekcie [też działa na obrazkach - gdyż po redirekcie można dowolną treść z dowolnymi nagłówkami i ciastkami wysłać...], ale tutaj są pliki serwowane bezpośrednio z serwisu http://tinypic.com/
norbis
Dokładnie tak jak napisał zegarek84 - w żadnym wypadku nie możesz się sugerować tylko rozszerzeniem pliku, użyj funkcji finfo_file() do rozpoznawania typu pliku. I jak chcesz bawić się w edycję obrazków, to polecam olać GD i poczytać o programie imagemagick i poleceniu system(), działa na większości hostingów i daje nieporównywalnie większe możliwości, o jakości nie wspominając.
stefik4
To w takim razie jesli użytkownik u mnie w portalu podaje link do loga/obrazka to jak mogę sprawdzić jego MIME? bo obecnie sprawdzam rozszerzenie, co jak widać się nie sprawdza ;( Zbytnio nie wiem jak sprawdzić mime type pliku an zewnętrznym serwie.
norbis
Chyba najprościej tak:

  1. $finfo = new finfo(FILEINFO_MIME);
  2. echo reset(explode(';',$finfo->file('http://i54.tinypic.com/33ud2fp.jpg')));
stefik4
  1. Fatal error: Class 'finfo' not found in /home/speedway/domains/speedway-world.pl/public_html/teest.php on line 162


Potrzebuje klasy finfo, a niewiem skąd ja wziąć i jak jej użyć ;/
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.