Bilder aus Verzeichnis auslesen, thumb erstellen und in anderem Verzeichnis speichern

saraaa

Grünschnabel
Hallo, ich komme gerade nicht weiter...
Ich habe ein script, welches jpg aus einem ordner ausliest, alphabetisch sortiert und in einer Tabelle ausgibt.
Ich wollte mir nicht die Arbeit machen, jedes Mal beim Aendern der Bilddateien neue Thumbnails per Grafikprogramm zu erstellen und habe deshalb die Funktion cropimage eingefuegt.
Mein Problem ist jetzt, dass ich keinen anderen Pfad zum Abspeichern der Thumbs hinbekomme...Im Moment werden die Bilder einfach ersetzt, leider brauch ich die jpg-originale aber noch fuer die Lightbox...
Die betreffene Zeile ist: cropImage(225, 165, $wert, 'jpg', $wert);
$wert gibt den kompletten Pfad des einzelnen gerade bearbeiteten jpg an...theoretisch hab ich mit $bilder auch nur den namen ohne pfad, aber egal was ich probiere, ich schaffe es einfach nicht einen anderen Pfad als Ziel anzugeben...

PHP:
<?php
function cropImage($nw, $nh, $source, $stype, $dest) {
    $size = getimagesize($source);
    $w = $size[0];
    $h = $size[1];
    switch($stype) {
        case 'gif':
        $simg = imagecreatefromgif($source);
        break;
        case 'jpg':
        $simg = imagecreatefromjpeg($source);
        break;
        case 'png':
        $simg = imagecreatefrompng($source);
        break;
    }
    $dimg = imagecreatetruecolor($nw, $nh);
    $wm = $w/$nw;
    $hm = $h/$nh;
    $h_height = $nh/2;
    $w_height = $nw/2;
    if($w> $h) {
        $adjusted_width = $w / $hm;
        $half_width = $adjusted_width / 2;
        $int_width = $half_width - $w_height;
        imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h);
    } elseif(($w <$h) || ($w == $h)) {
        $adjusted_height = $h / $wm;
        $half_height = $adjusted_height / 2;
        $int_height = $half_height - $h_height;
        imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$nw,$adjusted_height,$w,$h);
    } else {
        imagecopyresampled($dimg,$simg,0,0,0,0,$nw,$nh,$w,$h);
    }
    imagejpeg($dimg,$dest,100);
}  
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
$verzeichnis = "../images/content/fantasy/"; // Pfad zum Verzeichnis
$handle = openDir($verzeichnis); // Verzeichnis öffnen
$j = 0;
while ($datei = readDir($handle)) { // Verzeichnis auslesen
 if ($datei != "." && $datei != ".." && !is_dir($datei)) { // Verzeichnisse filtern
  if (strstr($datei, ".gif") || strstr($datei, ".png") || strstr($datei, ".jpg")) { // Bilder filtern
   $verzeichnis_datei[$j] = $verzeichnis . $datei; // Pfad zur aktuellen Datei
   $j++;
  }
 }
}   
asort($verzeichnis_datei);
reset($verzeichnis_datei);
foreach($verzeichnis_datei as $wert) {   
       // Bild anzeigen
   $info = getImageSize($wert);
   $bilder = basename($wert, ".jpg");
   echo '<tr valign="top">';
   echo '<td width="160" height="130">';
   echo '<a href="../images/content/fantasy';
   echo '/'.$bilder.'.jpg" rel="lightbox">';
   cropImage(225, 165, $wert, 'jpg', $wert);
   echo "<img src=\"$wert\" width=\"$info[0]\" height=\"$info[1]\"> \n";
   echo '</a>';
   echo '</td>';
   echo '<td>';
   echo '<h3>';
   echo "$bilder";
   echo '</h3>';
   echo '</td>';
   echo '</tr>';
}
echo '</table>';
closeDir($handle); // Verzeichnis schließen
?>
 
Hi,

Die betreffene Zeile ist: cropImage(225, 165, $wert, 'jpg', $wert);
$wert gibt den kompletten Pfad des einzelnen gerade bearbeiteten jpg an...theoretisch hab ich mit $bilder auch nur den namen ohne pfad, aber egal was ich probiere, ich schaffe es einfach nicht einen anderen Pfad als Ziel anzugeben...

Und was genau hast Du probiert? Bis jetzt übergibst Du der Funktion als Ziel ja den Originalpfad. Überleg Dir, wo die Thumbnails liegen und wie sie heißen sollen, dann brauchst Du doch nur einen String zusammenzusetzen.

LG
 
Und was genau hast Du probiert? Bis jetzt übergibst Du der Funktion als Ziel ja den Originalpfad. Überleg Dir, wo die Thumbnails liegen und wie sie heißen sollen, dann brauchst Du doch nur einen String zusammenzusetzen.

...da zerbrech ich mir den Kopf und versuch den Link direkt in der Funktion zusamenzubasteln, statt vorher einen String mit dem Zielpfad zusammenzusetzen...aiaiai...kann ja nicht klappen (der Originalpfad war erstmal nur die Notloesung, um den Rest zu testen)...

Danke fuer den Anschubser - Inzwischen funktioniert alles :)

Ciao
Sara
 

Neue Beiträge

Zurück