Benutzer-Werkzeuge

Webseiten-Werkzeuge


wiki_anleitung:image_resize

Bilder verkleinern

Verkleinerte Bilder werden im Browser etwas unscharf dargestellt.
Ich habe verschiedenes ausprobiert, aber bis jetzt noch keine Möglichkeit der Verbesserung gefunden.

Unter www.hennweb.de/test.php findet man ein kleines Testprogramm für ImageMagick

Hier im DokuWiki kann man in der Konfiguration den ImageMagick Path eintragen um ImageMagick zu nutzen.
im_convert: „/usr/bin/convert“

Wenn man die Funktion umprogrammieren will schaut man in die Datei: inc\media.php ab Zeile 2276 function media_resize_imageIM

Zwei Lösungsansätze:

1. mit ImageMagick

download
 // check if convert is configured
    if(!$conf['im_convert']) return false;
 
    // prepare command
    $cmd  = $conf['im_convert'];
    $cmd .= ' -filter Lanczos -resize -quality 10 '.$to_w.'x'.$to_h.'!';
    if ($ext == 'jpg' || $ext == 'jpeg') {
        $cmd .= ' -quality '.$conf['jpg_quality'];
    }
 
 
    $cmd .= " $from $to";
 
    @exec($cmd,$out,$retval);
    if ($retval == 0) return true;
    return false;


2. mit PHP

download
$newWidth = $to_w;
$targetFile = $to;
$originalFile = $from;
 
    $info = getimagesize($originalFile);
    $mime = $info['mime'];
 
    switch ($mime) {
            case 'image/jpeg':
                    $image_create_func = 'imagecreatefromjpeg';
                    $image_save_func = 'imagejpeg';
                    $new_image_ext = 'jpg';
                    break;
 
            case 'image/png':
                    $image_create_func = 'imagecreatefrompng';
                    $image_save_func = 'imagepng';
                    $new_image_ext = 'png';
                    break;
 
            case 'image/gif':
                    $image_create_func = 'imagecreatefromgif';
                    $image_save_func = 'imagegif';
                    $new_image_ext = 'gif';
                    break;
 
            default: 
                    throw new Exception('Unknown image type.');
    }
 
    $img = $image_create_func($originalFile);
    list($width, $height) = getimagesize($originalFile);
 
    $newHeight = ($height / $width) * $newWidth;
    $tmp = imagecreatetruecolor($newWidth, $newHeight);
    imagecopyresampled($tmp, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
 
    if (file_exists($targetFile)) {
            unlink($targetFile);
    }
    $image_save_func($tmp, "$targetFile.$new_image_ext",0);
    //if ($retval == 0) return true;
	return false;
Cookies helfen bei der Bereitstellung von Inhalten. Diese Website verwendet Cookies. Mit der Nutzung der Website erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Computer gespeichert werden. Außerdem bestätigen Sie, dass Sie unsere Datenschutzerklärung gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website. Weitere Information
wiki_anleitung (9 views) · Zuletzt geändert: 12/11/2020 15:24 von conny