Обрезка картинки

Тема в разделе "PHP", создана пользователем LEXAlForpostl, 6 мар 2011.

Модераторы: latteo
  1. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    739
    Симпатии:
    226
    Здравствуйте.
    Необходима функция, которая бы обрезала картинку на 20 пикселей снизу. Причём на вход получала бы только url картинки.
     
  2. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    363
    Симпатии:
    117
    1) качаем картинку ф-цией file_get_contents, или курлом ( CURL ) если нужно из-под прокси

    2) получаем размеры ф-цией getimagesize

    3) обрезаем ф-цией imagecopy

    посмотреть формат вызова данных ф-ций на php.net думаю труда не составит

    Добавлено через 4 минуты
    или вот

    Перейти по ссылке

    между прочим первая ссылка с гугла по запросу "php обрезать изображение"
     
  3. PapaJoe

    PapaJoe

    Регистр.:
    4 авг 2008
    Сообщения:
    620
    Симпатии:
    312
    была такая тема:
    /showthread.php?t=121964
    а судя по мануалу Перейти по ссылке в функцию imagecreatefromjpeg() можно передавать url
     
  4. OpS87

    OpS87

    Регистр.:
    9 авг 2011
    Сообщения:
    175
    Симпатии:
    15
    Вот. Все разжевали и разложили по полочкам. А вообще, пора бы научиться использовать документацию или хотя-бы любой поисковик.
    http://www.talkphp.com/advanced-php-programming/1709-cropping-images-using-php.html
     
  5. aligarh

    aligarh Создатель

    Регистр.:
    18 авг 2007
    Сообщения:
    42
    Симпатии:
    2
    function crop($file_input, $file_output, $crop = 'square',$percent = false) {
    list($w_i, $h_i, $type) = getimagesize($file_input);
    if (!$w_i || !$h_i) {
    echo 'Невозможно получить длину и ширину изображения';
    return;
    }
    $types = array('','gif','jpeg','png');
    $ext = $types[$type];
    if ($ext) {
    $func = 'imagecreatefrom'.$ext;
    $img = $func($file_input);
    } else {
    echo 'Некорректный формат файла';
    return;
    }
    if ($crop == 'square') {
    $min = $w_i;
    if ($w_i > $h_i) $min = $h_i;
    $w_o = $h_o = $min;
    } else {
    list($x_o, $y_o, $w_o, $h_o) = $crop;
    if ($percent) {
    $w_o *= $w_i / 100;
    $h_o *= $h_i / 100;
    $x_o *= $w_i / 100;
    $y_o *= $h_i / 100;
    }
    if ($w_o < 0) $w_o += $w_i;
    $w_o -= $x_o;
    if ($h_o < 0) $h_o += $h_i;
    $h_o -= $y_o;
    }
    $img_o = imagecreatetruecolor($w_o, $h_o);
    imagecopy($img_o, $img, 0, 0, $x_o, $y_o, $w_o, $h_o);
    if ($type == 2) {
    return imagejpeg($img_o,$file_output,100);
    } else {
    $func = 'image'.$ext;
    return $func($img_o,$file_output);
    }
    }
    Я вот эту функцию обычно юзаю