Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [GD] tworzenie miniatur
Forum PHP.pl > Forum > PHP
kobylecki
Witam, potrzebuję napisać skrypt, który stworzy mi miniaturki zdjęć z danego katalogu. Skrypt napisałem (być może źle) i nie robi tego co ma robić. Nie pracowałem dotychczas z biblioteką GD, więc proszę o pomoc. Na forum wyszukiwałem postów o podobnej treści jednak nikt nie miał takiego problemu.
Skrypt zamknąłem w funkcji, która wykonując się rzuca wieloma Warningami. Oto przykładowy:

Warning: imagecreatefromjpeg(Resource id #3z8.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory ...

A to moja funkcja:

function create_gallery($katalog)
{
if (!extension_loaded('gd'))
if (!dl('gd.so'))
echo "Nie mogę odnaleźć bibioteki GD!";

if (is_dir($katalog))
{
$cat = opendir($katalog);
while (false !== ($file = readdir($cat)))
{
if (ereg('.jpg ,$file))
{
$img = imagecreatefromjpeg($cat.$file);
$dlu = imagesx($img);
$wys = imagesy($img);
if ($dlu < $wys)
{
$w = 130;
$d = ($w*$dlu)/$wys;
}
else
{
$d = 130;
$w = ($d*$wys)/$dlu ;
}
$img_mini = imagecreatetruecolor($d,$w);
imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $d, $w, $dlu, $wys);
imagejpeg($img_mini, $cat.'mini/'.$file, 80);
imagedestroy($img);
imagedestroy($img_mini);
}
}
closedir($cat);
return 'No dobra!';
}
else
{ return 'Klopot z katalogiem'; }
}
okitoki
masz prawo do zapisu w tym katalogu questionmark.gif

tzn nie masz praw zapisu exclamation.gif lub katalog nie istnieje
kobylecki
Mam wszystkie prawa (i nie tylko ja). Istnieje też katalog który podaję do funkcji (podaję ścieżkę względną ze slashem na końcu).
Istnieją też pliki w nim o rozszerzeniu .jpg. Istnieje także katalog mini, w któym chcę zapisywać miniaturki. Wszystko ma wszystkie uprawnienia.
Pewnie coś w funkcji jest nie tak - proszę, przeanalizujcie ją (może do tego katalogu mini trzeba jakoś wejść)?

W podanym przykładzie Warninga istnieje plik z8.jpg w katalogu podanym jako parametr. Nie wiem dlaczego jest tam ten prefiks #3.
wookieb
A co pisze?
Resource id #3

no i tutaj latwo sie domyslic ze zamiast $cat masz dac $katalog.
kobylecki
Prawdziwie czeski błąd. Dzięki!
Spawnm
  1. <?php
  2. $cat = opendir($katalog);
  3. while (false !== ($file = readdir($cat)))
  4. {
  5. if (ereg(.jpg ,$file))
  6. {
  7. $img = imagecreatefromjpeg($cat.$file);
  8. ?>

$cat to nie nazwa folderu tylko wskaźnik, jest chyba różnica , w ereg nie domknąłeś ' ale to nie jest powodem obecnego błędu
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.