Запрет обрезки изображения

sozu

Новичок
Кто нибудь подскажет, как можно запретить обрезку изображения. Или хотя-бы обрезать высоту, а длинну не трогать. Вот исходный код, что можно сделать?


PHP:
function CreateSmallImage( $OldImagePath, $NewImagePath, $NewWidth=154, $NewHeight=134)
{
    $OldImageInfo = getimagesize($OldImagePath);
    if ( $OldImageInfo[2] == 1 ) $OldImg = @imagecreatefromgif($OldImagePath);
    elseif ( $OldImageInfo[2] == 2 ) $OldImg = @imagecreatefromjpeg($OldImagePath);
    else $OldImg = @imagecreatefrompng($OldImagePath);
    $NewImg = imagecreatetruecolor( $NewWidth, $NewHeight );

    //red(0-255),green(0-255),blue(0-255)
    $black = ImageColorAllocate( $NewImg, 0, 0, 0 );
    $white = ImageColorAllocate( $NewImg, 255, 255, 255 );
    $red   = ImageColorAllocate( $NewImg, 255, 0, 0 );
    $blue  = ImageColorAllocate( $NewImg, 0, 0, 255 ); 
    $other = ImageColorAllocate( $NewImg, 0, 255, 0 );

    $WriteNewWidth = $NewHeight*($OldImageInfo[0] / $OldImageInfo[1]);
    $WriteNewHeight = $NewWidth*($OldImageInfo[1] / $OldImageInfo[0]);
    
    if ($OldImageInfo[0] / $NewWidth > $org_info[1] / $NewHeight) {
        $WriteNewWidth  = $NewWidth;
        $WriteNewHeight  = $NewWidth / ($OldImageInfo[0] / $OldImageInfo[1]);
    } else {
        $WriteNewWidth  = $NewHeight * ($OldImageInfo[0] / $OldImageInfo[1]);
        $WriteNewHeight = $NewHeight;
    }
    if ( $WriteNewWidth <= $NewWidth ) {
        $WriteNewWidth = $WriteNewWidth;
        $WriteNewHeight = $NewHeight;
        $WriteX = floor( ($NewWidth-$WriteNewWidth) / 2 );
        $WriteY = 0;
    } else {
        $WriteNewWidth = $NewWidth;
        $WriteNewHeight = $WriteNewHeight;
        $WriteX = 0;
        $WriteY = floor( ($NewHeight-$WriteNewHeight) / 2 );
    }
    @imagecopyresampled( $NewImg, $OldImg, $WriteX, $WriteY, 0, 0, $WriteNewWidth, $WriteNewHeight, $OldImageInfo[0], $OldImageInfo[1] );
    @imagegif( $NewImg, $NewImagePath );
    @imagedestroy($NewImg);
}
 
Сверху