Ускорение изменения размера изображения - PullRequest
0 голосов
/ 23 ноября 2010

Проблема: скрипт работает медленно. Этот скрипт находится внутри функции, которая запускается четыре раза для изображений разных размеров. Есть ли способ ускорить код ниже?

$outputFile = "../data/assets/temp.jpg";
$maxTempWidth  = 45;
$maxTempHeight = 45;
$image_info = getimagesize($setXsmallNewName);

if($image_info['mime'] == 'image/jpeg'){
$image = imagecreatefromjpeg($setXsmallNewName);
}elseif($image_info['mime'] == 'image/gif'){
$image = imagecreatefromgif($setXsmallNewName);
}elseif($image_info['mime'] == 'image/png'||$image_info['mime'] == 'image/x-png'){
    $image = imagecreatefrompng($setXsmallNewName);
}

$width = imagesx( $image );
$height = imagesy( $image );

if ($width > $maxTempWidth || $height > $maxTempHeight){   
    if ( $width > $height ){
        $newwidth = $maxTempWidth;
        $ratio = $maxTempWidth / $width;
        $newheight = floor($height * $ratio);

        if ($newheight > $maxTempHeight){
            $newheight = $maxTempHeight;
            $ratio = $maxTempHeight / $height;
            $newWidth = floor($width * $ratio);
        }
    }else{
        $newheight = $maxTempHeight;
        $ratio = $maxTempHeight / $height;
        $newwidth = floor($width * $ratio);

        if ($newwidth > $maxTempWidth){
            $newwidth = $maxTempWidth;
            $ratio = $maxTempWidth / $width;
            $newheight = floor($height * $ratio);
        }
    }
}else{
    $newwidth = $width;
    $newheight = $height;
}   
$final_image = imagecreatetruecolor($newwidth, $newheight);
imagecopyresampled($final_image, $image, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

1 Ответ

0 голосов
/ 23 ноября 2010

Используйте ImageMagick , который является ядром семейства php и очень быстрый.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...