Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Графика > Помогите с резкой картинок!


Автор: kdk 16.3.2007, 21:18
Можете помочь обьясните: Как можно просто можно обрезать картинку!
Я знаю что вы все пошлете на http://ru2.php.net/imagecopymerge! Я там ничего не понял можете выложить простенький пример с коментариями?
Зарание спасибо!

Автор: mishaSL 17.3.2007, 15:03
Вот написал простенький пример:
Код

<?php
function cutImg($file, $newWidth = 0, $newHeight = 0)
{
    //проверим данные переданные в функцию, если они неверны, то возвратим FALSE
    $newWidth    = intval($newWidth);
    $newHeight    = intval($newHeight);
    if (!file_exists($file) || $newWidth<=0 || $newHeight <=0) {
        return false;
    }
    //загружаем исходное изображение, допустим оно в формате JPG
    //если формат неизвестен - то здесь можно добавить определения формата
    $oldImg = imageCreateFromJpeg($file);
    //проверим если размеры изображения меньше, чем нужно обрезать, то присвоим эти размеры
    if (imageSX($oldImg) < $newWidth) {
        $newWidth = imageSX($oldImg);
    }
    if (imageSY($oldImg) < $newHeight) {
        $newHeight = imageSY($oldImg);
    }
    //cоздадим новое изображение, куда будем ложить результат, с нужными нам размерами
    $newImg = imageCreateTrueColor($newWidth, $newHeight);
    //для обрезания будем использовать функцию imagecopyresized
    imageCopyResized($newImg, $oldImg, 0, 0, 0, 0, $newWidth, $newHeight, $newWidth, $newHeight);
    //далее выводим в браузер для наглядности, если надо сохранить, то указываем второй параметр в функции
    //imagejpeg() и уберем header. Также обратим внимание, что функция imagejpeg() только для формата jpg
    header("Content-type: image/jpeg");
    imagejpeg($newImg);

}

cutImg('1234.jpg',100, 100);
?>



Прокомментировал вроде все. Если что-то непонятно - спрашивай. Далее функцию можно усовершенствовать smile 

Автор: kdk 17.3.2007, 19:49
Огромное спасибо! Все понятно!

Автор: SmivaL 25.9.2007, 11:59
подскажите пожалуйста что надо дописать к скрипту чтобы:

1) определять тип изображения;
2) резать по двум координатам, то есть допустим мне надо вырезать квадрат с левой верхней точкой в 10, 10 и правой нижней точкой 30, 30.

спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)