<?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);//Вызываем функцию ?>