Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Bitte um Hilfe bei eigener PHP Funktion (Bilder verkleinern)

Bitte um Hilfe bei eigener PHP Funktion (Bilder verkleinern)

flowgrow
flowgrow16.03.0919:52
ich habe ein Problem... ich wollte ein skript schreiben, dass mir eine Übersicht der Bilder in einem Ordner anzeigt. dafür wollte ich die originale mit php verkleinern und dann anzeigen lassen.

ich bin noch ziemlich am anfang. aber schon jetzt hab ich probleme: das skript hört komischerweise nach dem ersten bild auf :confused: .

wenn ich die thumbnails nicht erstelle, sondern einfach die Liste der Bilder anzeigen lasse, ist es kein Problem, aber sobald die funktion resizeimage() einmal aufgerufen wurde "stoppt" das skript irgendwie

hier noch die codes:

function resizeimage($height, $width, $sw, $sh, $img, $dest) {
    // get the smaller resulting image dimension if both height
    // and width are set and $constrain is also set
    $hx = (100 / ($sw / $width)) * .01;
    $hx = round ($sh * $hx);

    $wx = (100 / ($sh / $height)) * .01;
    $wx = round ($sw * $wx);

    if ($hx < $height) {
        $height = (100 / ($sw / $width)) * .01;
        $height = round ($sh * $height);
    } else {
        $width = (100 / ($sh / $height)) * .01;
        $width = round ($sw * $width);
    }

    $im = @ImageCreateFromJPEG ($img) or // Read JPEG Image
    $im = @ImageCreateFromPNG ($img) or // or PNG Image
    $im = @ImageCreateFromGIF ($img) or // or GIF Image
    $im = false;
    
    if (!$im)
        echo "Nur JPG, GIF oder PNG erlaubt!";
    else {
        // Create the resized image destination
        $thumb = ImageCreateTrueColor ($width, $height);
        // Copy from image source, resize it, and paste to image destination
        ImageCopyResampled ($thumb, $im, 0, 0, 0, 0, $width, $height, $sw, $sh);
        ImageJPEG ($thumb, $dest);
    }
}

und hier "gallery.php"

include '../../include/functions.php';

$dir = './';
    
    // open specified directory
    $dirHandle = opendir($dir);
    $files = array();
    while ($file = readdir($dirHandle)) {
        // if not a subdirectory and if filename contains the string '.jpg' 
        if(!is_dir($file) && strpos($file, '.jpg')>0) {
            // update count and string of files to be returned
            $files[] = $file;
        }
    }
    closedir($dirHandle);
    
    if (!file_exists("thumbs")) {
        mkdir("./thumbs", 0755);
        
        foreach($files as $value) {
            $size = getimagesize($value);
            $verhaeltnis = $size[0]/$size[1];
            //resizeimage(102, 102*$verhaeltnis, $size[0], $size[1], $value, "./thumbs/".$value);
            echo $value.", ".$size[0]." x ".$size[1].'<br />';
        }
    }
    
„Chuck Norris hat mehr Kreditkarten als Max Mustermann!“
0

Kommentare

iThinkDifferent16.03.0920:02
probier mal nach der Verkleinerung die Funktion "imagedestroy($thumb);"

Die sorgt dafür, dass das Bild wieder aus dem Arbeitsspeicher gelöscht wird und dieser somit für die nächste Verkleinerung zur Verfügung steht.
0
flowgrow
flowgrow16.03.0920:18
danke für die hilfe, aber es klappt leider trotzdem nicht.

PS ich hab mir gerade meinen beitrag noch einmal durchgelesen und fand es jetzt ein bisschen komisch formuliert, also nur nochmal zur info, falls das oben nicht so gut rübergekommen ist: der ordner thumbs wird erstellt, und das erste bild wird auch verkleinert hineinkopiert. dannach wird auch noch der echo befehl ausgeführt (echo $value.", ".$size[0]." x ".$size[1].'<br />';) aber dann is schluss
„Chuck Norris hat mehr Kreditkarten als Max Mustermann!“
0
flowgrow
flowgrow16.03.0920:30
OOOOH maaan! ich bin ja auch so ein idiot!

ich hab bei resize image ja 3 mal @ stehen (ist eine funktion aus dem internet, die ich letztes Jahr an meine bedürfnisse angepasst hab) die hab ich jetzt weggenommen, und siehe da: zu große originalbilder
„Chuck Norris hat mehr Kreditkarten als Max Mustermann!“
0
flowgrow
flowgrow16.03.0921:10
ok ich hab jetzt aber doch noch eine andere frage:

leider haben die thumbnails eine grässliche qualität... kann man das irgendwo einstellen (ala photoshop?)

bsp für "qualität":

Groß => Groß
„Chuck Norris hat mehr Kreditkarten als Max Mustermann!“
0
kcnb8
kcnb816.03.0921:40
RTFM PHP.net ist dein Freund

int imagejpeg ( resource $im [, string $filename [, int $quality ]] )
„"Life on Earth may be quite expensive, but it includes a free annual trip around the sun." - Ashleigh Brilliant“
0
flowgrow
flowgrow16.03.0921:44
danke für die antwort, ich habs aber dann eh selbst gefunden.
„Chuck Norris hat mehr Kreditkarten als Max Mustermann!“
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.