Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Графика > не происходит resize картинки: черный фон и все


Автор: kobezzza 6.8.2009, 19:18
для своего скрипта медиа галереи написал функцию пропорционального масштабирования картинки, вот собственно она:

Код

function resize_img($src,$name,$max_w,$max_h,$tr,$delete)
{
    if(!function_exists('imagecopyresampled'))
    {    
        echo 'У вас не установлена библиотека GD!';
        return $name;
    }
    $frm = substr($name,-4,4);
    switch ($frm)
    {
        case '.jpg' : $img = imagecreatefromjpeg($src.$name); break;
        case '.png' : $img = imagecreatefrompng($src.$name); break;
        case '.gif' : $img = imagecreatefromgif($src.$name); break;
    }
    $rh = imagesy($img);    
    $rw = imagesx($img);
    if ($rw > $max_w || $rh > $max_h)
    {
        if ($rw < $rh || $rw == $rh)
        {
            $y = $max_h / $rh;
            $h = floor($rh * $y);
            $w = floor($rw * $y);
        }
        else
        {
            $x = $max_w / $rx;
            $h = floor($rh * $x);
            $w = floor($rw * $x);
        }
        $new = imagecreatetruecolor($w, $h);
        imagecopyresampled($new, $img, 0, 0, 0, 0, $w,$h,$rw,$rx);
        mt_srand(time());
        $rand = mt_rand(0,1000);
        if ($tr == 't') 
        {
            while (file_exists('tmb_'.$rand.'.png')) $rand;
            imagepng($new,$src.'tmb_'.$rand.'.png');
        }
        if ($tr == 'r') 
        {
            while (file_exists('rs_'.$rand.'.jpg')) $rand;
            imagejpeg($new,$src.'rs_'.$rand.'.jpg');
        }
        imagedestroy($new);
        imagedestroy($img);
        if ($delete == 1) unlink ($src.$name);
    }
    else
    {
        imagedestroy($img);
        return $name;
    }
    $file = 'tmb_'.$rand.'.png';
    return $file;
}


но проблема, выходное сохраняемое изображение почему-то тупо чёрный фон(( подскажите плз, где моя ошибка

Автор: kobezzza 6.8.2009, 20:34
нашёл ошибку) 4 часа провозился из за того что вместо $wh перепутал и написал $wx ((

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)