Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]problem z imagecreatefromgif
Forum PHP.pl > Forum > Przedszkole
hobibit
Nie działa mi fragment kodu z funkcją: imagecreatefromgif.

  1. <?php
  2. if (function_exists('imagecreatefromgif')){echo 'jest';}
  3. $obrazek_tymczasowy = imagecreatefromgif("pliki/qwe.gif");
  4. ?>


  1. jest
  2. Warning: imagecreatefromgif() [function.imagecreatefromgif]: 'pliki/qwe.gif' is not a valid GIF file in /home/hobibit/public_html/art/index.php on line 71


Fragment z phpinfo():
gd
GD Support enabled
GD Version bundled (2.0.34 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.1.9
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XPM Support enabled
XBM Support enabled
bartg
Wyraźnie pisze że ten obrazek nie jest gifem. Rozszerzen ie nie zmienia typów pliku ;p

Funkcja sprawdzająca typy plików: (by me)
  1. <?php
  2. function imagecreatefrom($sFile)
  3. {
  4. if(!file_exists($sFile))
  5. {
  6. die('Image doesn't not exists: '.$sFile);
  7. }
  8. $size = @getimagesize($sFile);
  9. switch ($size[2])
  10. {
  11. case IMAGETYPE_PNG:  
  12. $imgTmp = imagecreatefrompng($sFile);
  13. break;
  14. case IMAGETYPE_JPEG: 
  15. $imgTmp = imagecreatefromjpeg($sFile);
  16. break;
  17. case IMAGETYPE_GIF: 
  18. $imgTmp = imagecreatefromgif($sFile);
  19. break;
  20. default:
  21. die('Invalid image type: '.$size[2]);
  22. break;
  23. }
  24. return $imgTmp;
  25. }
  26. ?>
bim2
Ja bym do tego dodał jeszcze WBMP i zamiast die() dał return false; tongue.gif
bartg
Bim dobrze wiesz że tam z naszej funkcji była excepcja Syda i najprościej dla mnie było dać die. Dodatkowo jeśli nie ma obrazka to po co dalej robić smile.gif. Najwyżej dac w ifce else i dac jakis domyślny img.
  1. <?php
  2. if(!file_exists($sFile))
  3. {
  4. sFile = 'sciezka domyslnego obrazka pokazujace go jakis blad';
  5. }
  6. ?>
hobibit
Wielkie dzięki. Nie mam pojęcia dlaczego tak było... ten plik naprawdę nie był innym plikiem ze zmienionym rozszerzeniem.
Mam jeszcze jedno pytanie, ten fragment potrzebowałem do tworzenia miniatur.
czyli w sumie standard ale u mnie
  1. <?php
  2. $miniatura = imagecreatetruecolor(100, 100);
  3. ?>

tworzy kwadracik ale wypełniony czarnym kolorem i żeby cokolwiek tam zamieścić widocznego musiałem pomalować go na biało. Czy jest jakiś inny sposób czy ja coś źle zrobiłem.
l0ud
Cytat
tworzy kwadracik ale wypełniony czarnym kolorem i żeby cokolwiek tam zamieścić widocznego musiałem pomalować go na biało. Czy jest jakiś inny sposób czy ja coś źle zrobiłem.


W wypadku truecolor to normalne, że obrazek jest domyślnie czarny. Do zrobienia miniatury najlepiej użyj (po wyliczeniu współczynników) imagecopyresampled().

http://pl.php.net/manual/pl/function.imagecopyresampled.php
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.