Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt do resizu obrazkow JPG, GIF i PNG
Forum PHP.pl > Forum > Gotowe rozwiązania
miedzna
Mam scrypt, który zmienia rozdzielczość obrazków, ale oczywiście wywala mi 3 błedy:
Warning: imagecreatetruecolor(): Invalid image dimensions in r:\home\localhost\www\imgs\mini.php on line 64

Warning: imagecopyresized(): supplied argument is not a valid Image resource in r:\home\localhost\www\imgs\mini.php on line 66

Fatal error: Call to undefined function: imagegif() in r:\home\localhost\www\imgs\mini.php on line 36

  1. <?php
  2. $img_type = null;
  3. function getImage($imgName)
  4. {
  5. $ext = substr($imgName, strlen($imgName) - 3, 3);
  6. $ext = strtolower($ext);
  7. if($ext == 'jpg'){
  8. $img = imagecreatefromjpeg($imgName);
  9. $GLOBALS['img_type'] = IMG_JPEG;
  10. }
  11. else if($ext == 'gif'){
  12. $img = imagecreatefromgif($imgName);
  13. $GLOBALS['img_type'] = IMG_GIF;
  14. }
  15. else if($ext == 'png'){
  16. $img = imagecreatefrompng($imgName);
  17. $GLOBALS['img_type'] = IMG_PNG;
  18. }
  19. else{
  20. $img = null;
  21. $GLOBALS['img_type'] = null;
  22. }
  23. return $img;
  24. }
  25. function saveImage($img, $name, $imgType)
  26. {
  27. $name = substr($name, 0, strlen($name) - 5);
  28. $name = $name.&#092;"-resized.\";
  29. switch($imgType){
  30. case IMG_JPEG:
  31. $name .= &#092;"jpg\";
  32. imagejpeg($img, $name);
  33. break;
  34. case IMG_GIF:
  35. $name .= &#092;"gif\";
  36. imagegif($img, $name);
  37. break;
  38. case IMG_PNG:
  39. $name .= &#092;"png\";
  40. imagepng($img, $name);
  41. break;
  42. }
  43. }
  44.  
  45. function resize($imgName, $size)
  46. {
  47. if(!($img = getImage($imgName))){
  48. echo(&#092;"Nie mogę otworzyć pliku: $imgName\");
  49. return false;
  50. }
  51. $img_w = imagesx($img);
  52. $img_h = imagesy($img);
  53.  
  54. $ration = $img_w / $img_h;
  55.  
  56. if($ratio > 1){
  57. $new_img_w = $size;
  58. $new_img_h = ($size / $ratio);
  59. }
  60. else{
  61. $new_img_w = ($size * $ratio);
  62. $new_img_h = $size;
  63. }
  64. $tempImg = imagecreatetruecolor($new_img_w, $new_img_h);
  65. imagecopyresized($tempImg, $img, 0, 0, 0, 0, 
  66. $new_img_w, $new_img_h, $img_w, $img_h);
  67.  
  68. saveImage($tempImg, $imgName, $GLOBALS['img_type']);
  69. }
  70. resize(&#092;"1.gif\", 100);
  71. ?>
kszychu
Kluczowy jest tu ostatni błąd: Twoja gd nie obsługuje gifów.
miedzna
Cytat(kszychu @ 2005-03-04 11:28:24)
Kluczowy jest tu ostatni błąd: Twoja gd nie obsługuje gifów.

I co mam z tym zrobić ?
zulus
dwa sposoby, załadować sobie gd z obsługą gifów, albo zamiast gifów użyć np png
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-2024 Invision Power Services, Inc.