Benutzer-Werkzeuge

Webseiten-Werkzeuge


wiki_anleitung:image_resize

Dies ist eine alte Version des Dokuments!


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;
Diese Website verwendet nur für den Betrieb notwendige Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer sowie den Datenschutzbestimmungen zu. Wenn Sie nicht einverstanden sind, verlassen Sie die Website. Weitere Information
wiki_anleitung (378 views) · Zuletzt geändert: 12/11/2020 15:24 von conny

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki