kostenloser Webspace werbefrei: lima-city


bilder aus ordner auslesen, größe ändern und wieder abspeichern

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    fireman02

    fireman02 hat kostenlosen Webspace.

    hi,
    ich habe mir ein script gebastelt welches alle bilder aus dem ordner "schullandheim" ausliest. Er soll jetzt aber noch die gr??er aller bilder auf 800x600 bzw. 600x800 reduzieren. mein script testet auch schon ob das bild im hoch- oder querformat ist.
    nur bei dem abspeichern der neuen datei tauchen bei mir schwierigkeiten auf und vorallem mit der anderen gr??e abzuspeichern.
    die datei liegt im root verzeichnis, die original bilder in /schullandheim/ und die neuen bilder sollen in /neu/ gespeichert werden.

    hier mein bisheriges script:
    $files = glob("schullandheim/*.jpg");
        if(is_array($files)) {
            foreach($files as $file) {
             $files = explode("/", $file);
                $datei = $files[1];
                $dateipfad = $file;
                $info = getimagesize($dateipfad);
                $width = $info[0];
                $height = $info[1];
                $width_quer_neu = 800;
                $width_hoch_neu = 600;
                $height_quer_neu = 600;
                $height_hoch_neu = 800;
                 if($width > $height) { $format = "quer";}
                 elseif($width < $height) { $format = "hoch";}
    if($format == "quer"){
    // bild im querformat abspeichern
    }
    
    elseif($format == "hoch"){
    // bild im hochformat abspeichern
    }


    Beitrag ge?ndert am 21.06.2006 18:00 von fireman02
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hi,

    ich hab dir eine einfache Funktion geschrieben, um ein jpg-Bild zu "resizen":
    // void resize_img( string img_src, int width, int height, string dst_file [, int quality ] )
    // img_src: die Bild-Datei (z.B. "test.jpg")
    // width: die breite
    // height: die H?he
    // dst_file: die Datei, inder das neue Bild gespeichert wird (z.B. "neu.jpg")
    // quality: Qualit?t des neuen Bildes (100 = sehr gut, 0 = f**ked up)
    function resize_img($img_src,$width,$height,$dst_file,$quality = 100) {
      list($w,$h) = getimagesize($img_src);
      $img = imagecreatefromjpeg($img_src);
      $resized_img = imagecreate($width,$height);
      imagecopyresized($resized_img,$img,0,0,0,0,$width,$height,$w,$h);
      imagejpeg($resized_img,$dst_file,$quality);
    }


    Das kannst du dann so benutzen:
    $file = "img.jpg";
    $ziel = md5(uniqid(microtime(),true)) . ".jpg";
    resize_img($file,600,800,$ziel);


    Jetzt musst du die Funktion nur noch einbauen, so einfach ist das :biggrin:.

    mfg,
    hr

    Beitrag ge?ndert am 22.06.2006 18:28 von heavyraptor
  4. Autor dieses Themas

    fireman02

    fireman02 hat kostenlosen Webspace.

    danke dir! klappt eigentlich wunderbar aber die qualit?t l?sst sehr zu wunschen ?brig...

    mein script:
    <?
        $files = glob("schullandheim/*.jpg");
        if(is_array($files)) {
            foreach($files as $file) {
             $files = explode("/", $file);
                $datei = $files[1];
                $dateipfad = $file;
                $imgfile = $dateipfad;
                $info = getimagesize($dateipfad);
                $width = $info[0];
                $height = $info[1];
                $width_quer_neu = 800;
                $width_hoch_neu = 600;
                $height_quer_neu = 600;
                $height_hoch_neu = 800;
                 if($width > $height) { $format = "quer";}
                 elseif($width < $height) { $format = "hoch";}
    if($format == "quer"){
    $quality = 100;
    $ordner = "schullandheim2/$datei";
    
      list($w,$h) = getimagesize($dateipfad);
      $img = imagecreatefromjpeg($dateipfad);
      $resized_img = imagecreate($width_quer_neu,$height_quer_neu);
      imagecopyresized($resized_img,$img,0,0,0,0,$width_quer_neu,$height_quer_neu,$w,$h);
      imagejpeg($resized_img,$ordner,$quality);
    }
    
    elseif($format == "hoch"){
    
    $ordner = "schullandheim2/$datei";
    
      list($w,$h) = getimagesize($dateipfad);
      $img = imagecreatefromjpeg($dateipfad);
      $resized_img = imagecreate($width_hoch_neu,$height_hoch_neu);
      imagecopyresized($resized_img,$img,0,0,0,0,$width_hoch_neu,$height_hoch_neu,$w,$h);
      imagejpeg($resized_img,$ordner,$quality);
    }
    }}
    
    ?>
  5. s*n

    Aloha,

    du k?nntest statt der Funktion ImageCreate, die Funktion ImageCreateTrueColor verwenden. Wie der Name schon sagt, hast du dann Bilder in "TrueColor" :cool: :biggrin:. Kommt halt drauf an, ob der Server das unterst?tzt (Lima m?sste es, meines Wissens nach).

    MfG :wink:
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!