Отображение картинки

Тема в разделе "PHP", создана пользователем LEXAlForpostl, 27 июн 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    739
    Симпатии:
    226
    Здравствуйте.
    Помогите пожалуйста разобраться с функцией.
    Задача: Есть картинка, необходимо её отобразить не более 200х150. Если её размер больше, то необходимо узнать возможную высоту и ширину в пропорциональном уменьшении от текущей.
    Т.е. если у нас картинка 400 х 300, то мы получим 200х150
    Но если картинка 411х123, необходимо получить стороны не более 200х1500 при этом не исказив пропорции.
    Как сохранить пропорции и при этом уменьшить картинку?
     
  2. Digwnews

    Digwnews Читатель

    Заблокирован
    Регистр.:
    1 мар 2010
    Сообщения:
    127
    Симпатии:
    24
    PHP:
    function imageresize(&$img$width$height) {
        
    $w imagesx($img);
        
    $h imagesy($img);
        
    $ratio 0;
        
        if(
    $width && $height) {
            
    $w_dest $width;
            
    $h_dest $height;
        } else {
            if(
    $width 0)
                
    $ratio $w $width;
            elseif(
    $height 0)
                
    $ratio $h $height;
            
            if(
    $ratio 0) {
                
    $w_dest round($w $ratio);
                
    $h_dest round($h $ratio);
            }
        }
        
        if(!
    $w_dest || !$h_dest)
            return 
    false;
            
        
    $new_img imagecreatetruecolor($w_dest$h_dest);
        
    imagealphablending($new_imgfalse);
        
    imagesavealpha($new_imgtrue);
        
        
    imagefilledrectangle($new_img00$w_dest$h_destimagecolorallocatealpha($new_img255255255127));
        
    imagecopyresampled($new_img$img0000$w_dest$h_dest$w$h); 
        
         
    $img $new_img;
    }
    Юзать так:
    imageresize($img, 200, null);

    Где $img - это напр. из джепега $img = imagecreatefromjpeg($folder);
     
    LEXAlForpostl нравится это.
Статус темы:
Закрыта.