• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Bilder resize

wolf360

Neues Mitglied
Folgendes problem ich will eine Bildergallerie erstellen und habe mir folgende Funktion geschrieben:

PHP:
 function resize($path){
$original = $path;
    $type = getimagesize($original);

            header('Content-type: '.$type['mime']);
$groesse = 0.2;


list($width, $height) = getimagesize($original);
$new_width = $width * $groesse;
$new_height = $height * $groesse;


$thumb = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($original);
imagecopyresampled($thumb, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Output
imagejpeg($thumb);
}

Das ganze hab ich dann vor so aufzurufen:

PHP:
if ($handle = opendir('bilder/gig/test')) {
    echo "Directory handle: $handle\n";
    echo "Files:\n";

    /* Das ist der korrekte Weg, ein Verzeichnis zu durchlaufen. */
    while (false !== ($file = readdir($handle))) {
        resize('bilder/gig/test/IMG_3704-900.jpg');
    }
 }else{

 echo "fehler";

 }

Aber dann kommt immer die Fehlermeldung Warning: Cannot modify header information - headers already sent by(xxx);

wie muss ich das mit dem Header machen das alles klappt, ich versteh das noch nicht so ganz....

danke für die hilfe gruß wolf360
 
okey jetzt klappt die erste ausgabe schon mal aber das Script wird nur 1 mal ausgeführt, obwohl mehr Bilder in dem ordner sind?!
 
Hmm, ja, sowas in der Art dachte ich mir schon :) Vermutlich zeigt er dir das letzte Bild an, da du ja immer wieder den header erneut sendest, um das aktuelle Bild anzuzeigen und er überschreibt die Ausgabe!

Du könntest den header weglassen (dann kannste die Ausgabe wieder einbauen):
PHP:
//header('Content-type: '.$type['mime']);
dafür den zweiten Parameter von http://php.net/imagejpeg setzen, damit das Thumbnail gespeichert wird (vielleicht noch einen extra Ordner dafür anlegen)!
PHP:
$thumbnail_path = 'thumbnails';
if (!is_dir($thumbnail_path)) {
  mkdir($thumbnail_path, 700);
}
imagejpeg($thumb, $thumbnail_path . strrchr($original, '/'), 100);
(ungetestet, du solltest die Werte überprüfen)

Dann bräuchtest du aber noch eine Funktion um alle Thumbnails wieder aus diesem Ordner auszulesen http://selfphp.de/kochbuch/kochbuch.php?code=43. Diese gibst du dann der Reihe nach über das <img> - Tag aus!
 
PHP:
$thumbnail_path = 'thumbnails';
if (!is_dir($thumbnail_path)) {
  mkdir($thumbnail_path, 700);
}
imagejpeg($thumb, $thumbnail_path . strrchr($original, '/'), 100);

PHP:
$altesBild= ImageCreateFromJPEG("$path"."$bild");
$neuesBild= imagecreate($neueBreite,$neueHoehe);
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
ImageJPEG($neuesBild,"$thumbnail_path"."$bild");
würde ich machen, fals man an den thumbs was ändern möchte.
 
Zurück
Oben