Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak użyć funkcji do tworzenia miniatur
Forum PHP.pl > Forum > Przedszkole
honytowk
Witam, mógł by mi ktoś wytłumaczyć jak użyć tej funkcji do tworzenia miniatur gd?

  1. function createthumbnail($filetype, $origfile, $thumbfile, $new_w, $new_h) {
  2.  
  3. global $settings;
  4.  
  5. if ($filetype == 1) { $origimage = imagecreatefromgif($origfile); }
  6. elseif ($filetype == 2) { $origimage = imagecreatefromjpeg($origfile); }
  7. elseif ($filetype == 3) { $origimage = imagecreatefrompng($origfile); }
  8.  
  9. $old_x = imagesx($origimage);
  10. $old_y = imagesy($origimage);
  11.  
  12. if ($old_x > $new_w || $old_y > $new_h) {
  13. if ($old_x < $old_y) {
  14. $thumb_w = round(($old_x * $new_h) / $old_y);
  15. $thumb_h = $new_h;
  16. } elseif ($old_x > $old_y) {
  17. $thumb_w = $new_w;
  18. $thumb_h = round(($old_y * $new_w) / $old_x);
  19. } else {
  20. $thumb_w = $new_w;
  21. $thumb_h = $new_h;
  22. }
  23. } else {
  24. $thumb_w = $old_x;
  25. $thumb_h = $old_y;
  26. }
  27.  
  28. if ($settings['thumb_compression'] == "gd1") {
  29. $thumbimage = imagecreate($thumb_w,$thumb_h);
  30. $result = imagecopyresized($thumbimage, $origimage, 0, 0, 0, 0, $thumb_w, $thumb_h, $old_x, $old_y);
  31. } else {
  32. $thumbimage = imagecreatetruecolor($thumb_w,$thumb_h);
  33. $result = imagecopyresampled($thumbimage, $origimage, 0, 0, 0, 0, $thumb_w, $thumb_h, $old_x, $old_y);
  34. }
  35.  
  36. touch($thumbfile);
  37.  
  38. if ($filetype == 1) { imagegif($thumbimage, $thumbfile); }
  39. elseif ($filetype == 2) { imagejpeg($thumbimage, $thumbfile); }
  40. elseif ($filetype == 3) { imagepng($thumbimage, $thumbfile); }
  41. }


użyłem jej tak:
  1. <?php
  2. require_once "maincore.php";
  3. require_once INCLUDES."photo_functions_include.php";
  4.  
  5. createthumbnail("jpg", "images/photoalbum/useralbum_48/a", "images/photoalbum/useralbum_48/a_t.jpg", "100", "100");
  6.  
  7.  
  8. ?>


i jak wejdę w plik z pozycji przeglądarki to wyskakują błędy a funkcja w 100% działa
tehaha
nie analizowałem kodu, ale tak z samej nomenklatury wynika, że drugi parametr przekazywany do funkcji to ścieżka do oryginalnego pliku graficznego, a Ty wstawiłeś "images/photoalbum/useralbum_48/a", co zdjęciem nie jest, może miało być "images/photoalbum/useralbum_48/a.jpg"?
honytowk
z rozszerzeniem również nie działa
tehaha
ok widzę jeszcze jeden szczegół przy filetype wpisujesz 'jpg', natomiast skrypt sprawdza czy jest to 1,2 lub 3, tak więc dla jpg spróbuj wpisać 2 bez apostrofów, i oczywiście sprawdź z podanym rozszerzeniem .jpg dla drugiego parametru funkcji
mls
Po pierwsze - jakie błędy wyświetla PHP?
Po drugie:
  1. createthumbnail(2, "images/photoalbum/useralbum_48/a.jpg", "images/photoalbum/useralbum_48/a_t.jpg", 100, 100);
honytowk
  1. createthumbnail(2, "images/photoalbum/useralbum_48/a.jpg", "images/photoalbum/useralbum_48/a_t.jpg", 100, 100);

jak dalem tak to nic nie wyswietla ale miniatury nie utworzylo
mls
To może jeszcze łaskawie sprawdź, czy w ogóle istnieje taki plik jaki podajesz jako parametr...
honytowk
Plik:
  1. images/photoalbum/useralbum_48/a.jpg
istnieje
tak samo
  1. require_once "maincore.php";
  2. require_once INCLUDES."photo_functions_
  3. include.php";
tehaha
a czy ścieżka jest prawidłowa względem tego skryptu? wpisz te linijki i odpal:
  1. if(file_exists('images/photoalbum/useralbum_48/a.jpg'))
  2. {
  3. echo "tak";
  4. } else
  5. {
  6. echo "nie";
  7. }


jeśli to nadal nie pomoże, to upewnij się, że masz odpowiedni CHMOD zezwalający na tworzenie pliku przez skrypt, i spróbuj usunąć tą linijkę: touch($thumbfile);
honytowk
Wyświetla Tak

ok już sobie poradziłem winksmiley.jpg
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.