<?php/*$x_oи$y_o-координатылевоговерхнегоуглавыходногоизображениянаисходном$w_oиh_o-ширинаивысотавыходногоизображения*/functioncrop($image,$x_o,$y_o,$w_o,$h_o){if(($x_o<0)||($y_o<0)||($w_o<0)||($h_o<0)){echo"Некорректныевходныепараметры";returnfalse;}list($w_i,$h_i,$type)=getimagesize($image);//Получаемразмерыитипизображения(число)$types=array("","gif","jpeg","png");//Массивстипамиизображений$ext=$types[$type];//Зная"числовой"типизображения,узнаёмназваниетипаif($ext){$func='imagecreatefrom'.$ext;//Получаемназваниефункции,соответствующуютипу,длясозданияизображения$img_i=$func($image);//Создаёмдескриптордляработысисходнымизображением}else{echo'Некорректноеизображение';//Выводимошибку,еслиформатизображениянедопустимыйreturnfalse;}if($x_o+$w_o>$w_i)$w_o=$w_i-$x_o;//Еслиширинавыходногоизображениябольшеисходного(сучётомx_o),тоуменьшаемеёif($y_o+$h_o>$h_i)$h_o=$h_i-$y_o;//Есливысотавыходногоизображениябольшеисходного(сучётомy_o),тоуменьшаемеё$img_o=imagecreatetruecolor($w_o,$h_o);//Создаёмдескриптордлявыходногоизображенияimagecopy($img_o,$img_i,0,0,$x_o,$y_o,$w_o,$h_o);//Переносимчастьизображенияизисходноговвыходное$func='image'.$ext;//Получаемфункциядлясохранениярезультатаreturn$func($img_o,$image);//Сохраняемизображениевтотжефайл,чтоиисходное,возвращаярезультатэтойоперации}crop("image.jpg",100,100,200,50);//Вызываемфункцию?>