PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Thumbnails



stular
17-03-2007, 09:48
Hallo Leute

Ich hab n'problem mit folgendem script. Ich möchte aus bildern thumbnails erstellen die dann im ordner ../thumb gespeichert werden. das funktioniert auch soweit. damit ich immer die aktuellsten bilder habe, lösche ich die thumbs vor beginn des scpripts, um dann die neuen da rein zu kopieren. Diese werden dann in einer Vorschau angezigt. Jedenfalls funktioniert das auch solange der ordner ../thumb leer ist. Wenn sich jedoch Bilder darin befinden, werden mir alle doppelt angezeigt...obwohl sie zu beginn gelöscht wurden???

Erkennt da jemand das Problem...:confused: :confused:


PHP-Quellcode:




error_reporting(E_ALL);


//Prüfen ob Ordner leer ist...
function Ordner_leer ($ordner)
{
global $leer;
$handle = opendir($ordner);
// zähler null setzen
$i=0;
// ordner durchsuchen
while($f = readdir($handle)) {
// diese verzeichnisse sind IMMER da
if($f == "." || $f == "..") continue;
// alles andere hochzählen
$i++;
}
// ordner zu
closedir($handle);
// ordner leer.
if($i==0)
{
$leer = 1;
}
else
{
$leer = $i;
};
};


//Verzeichnis auslesen
function Verzeichnis ($ordner)
{
global $anzahl;
global $dateien;
$dir = opendir($ordner);
$dateiendung = array('jpg','gif');
while ($datei = readdir($dir))

{
if (($datei != ".") && ($datei != ".."))
{
if (in_array(substr($datei, -3), $dateiendung))
{
$dateien[] = $datei;
}
}
}

closedir($dir);
$anzahl = count($dateien);
echo "Anzahl Bilder im Ordner $ordner: $anzahl<br>";
sort($dateien);
reset($dateien);
//print_r($dateien);
//Dateien aus Thumb löschen
};





//Dateien im Thumbnailordner löschen
Ordner_leer("../../Bilder/bg_pict/thumb/");
if ($leer == 1)
{
echo "Der Thumbordner ist leer<br>";
}
else
{

Verzeichnis ("../../Bilder/bg_pict/thumb/");

$i = 0;
while ($anzahl > $i)
{

if (unlink("../../Bilder/bg_pict/thumb/$dateien[$i]"))
{
echo "Datei $dateien[$i]<br>";
}
else {
echo "Fehler!";
die();
}
$i++;
}
};


//neue Thumbnails in Verzeichnis kopierern wenn Ordner leer ist
Ordner_leer("../../Bilder/bg_pict/thumb/");
if ($leer == 1)
{

Verzeichnis("../../Bilder/bg_pict/");

$i = 0;

while ($anzahl > $i)
//echo "$anzahl";
{
$size=GetImageSize("/home/www/web358/html/Bilder/bg_pict/$dateien[$i]"); #ermittelt die Bildgröße von test.jpg
//print_r($size);
$old=ImageCreateFromJPEG("/home/www/web358/html/Bilder/bg_pict/$dateien[$i]"); #erzeugt neues Bild, das aus der JPEG-Datei test.jpg gelesen wird
$new=ImageCreateTruecolor(50,60); #erzeugt ein neues Bild
ImageCopyResampled($new,$old,0,0,0,0,50,60,$size[0],$size[1]); #kopiert und ändert von $old in $new
ImageJPEG($new,"/home/www/web358/html/Bilder/bg_pict/thumb/$dateien[$i]",100); #speichert $newimage in test.*
ImageDestroy($old); #gibt Speicher von $old wieder frei, löscht $old
ImageDestroy($new); #gibt Speicher von $new wieder frei, löscht $new

echo "<table width='200' border='1' cellspacing='0' cellpadding='0'>
<tr>
<td>$dateien[$i]</td>
<td>&nbsp;</td>
<td><img src='/Bilder/bg_pict/thumb/$dateien[$i]'></td>
</tr>";
$i++;
}
echo "</table>";
};
?>

undefined
17-03-2007, 21:08
Ja - dir fehlt dir Entsprechende Datenbank(txt,sqlite,db,mysql,xml) um die Informationen zu Speichern welche Thumbs schon vorhanden sind.