Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][GD] Tworzenie miniaturek
Aysorth
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 31.12.2008

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


Hej,
posiadam ja sobie taki kod:
  1. <?php
  2.        function createthumb($file, $new_height = 200) {
  3.  
  4.                $name = explode('.', $file);
  5. if (preg_match("/jpg|jpeg/", $name[1])) {
  6. $image = imagecreatefromjpeg($file);
  7. } elseif (preg_match("/png/", $name[1])) {
  8. $image = imagecreatefrompng($file);
  9. } else {
  10. die("Podany plik musi być formatu .png, .jpg lub .jpeg.");
  11. }
  12.  
  13.                $width = imagesx($image);
  14. $height = imagesy($image);
  15.  
  16.                $new_width = ceil(($width*$new_height) / $height);
  17.  
  18.                $finalimg = imagecreatetruecolor($new_width, $new_height);
  19.  
  20.                imagecopyresized($finalimg, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height) or die();
  21.  
  22.                imagepng($img, "images/gallery/thumbnails/".$name[0].".png/");
  23.  
  24.                return $finalimg;
  25.  
  26.        }
  27. ?>


Wydaje mi się poprawny, jednak funkcja przy wywołaniu wyrzuca błąd:
imagecopyresized(): supplied argument is not a valid Image resource
Występuje on przy zmiennej $finalimg, 5 linijka od dołu.

Próbowałem różnie, ze stałymi wartościami wysokości i szerokości, imagecreate(), cały czas to samo. Co może być powodem tego błędu? Jak go zdeptać, opluć i wgnieść w ziemię?

Pracuję na
Apacz 2.2.6
PHP 5.25
GD 2.0.34
Win XP SP2

Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
ikssde
post
Post #2





Grupa: Zarejestrowani
Postów: 217
Pomógł: 40
Dołączył: 20.08.2008

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


Wszedzie korzystasz ze zmiennej $image a w funkcji wywolujesz jako $img ?

@edit

Po pierwsze w poniższym kodzie masz błąd :

imagepng($img, "images/gallery/thumbnails/".$name[0].".png/");

*Nie powinno być "/" za rozszerzeniem pliku, czyli "png/".
*Tworzysz miniaturke ze zmiennej "$img", a tak naprawdę powinieneś ją tworzyć z "$finalimg"

Po drugie

imagecopyresized($finalimg, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height) or die();

*Odwołujesz się do zmiennej "$img", która wcześniej nie występuje, zamień to na "$image"

Z tymi poprawkami u mnie działa ! (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Wesołego i szczęśliwego nowego roku życzę !

Ten post edytował ikssde 1.01.2009, 00:37:32
Go to the top of the page
+Quote Post
Aysorth
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 31.12.2008

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


Porażka kompletna i wstyd przeokrutny. Dzięki za pomoc, smacznego jajka. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 23:46