Crop и Resize изображений средствами CodeIgniter

CodeIgniter

Великолепный фреймворк CodeIgniter идеальный инструмент в руках разработчика. Его простота помогает решить насущные задачи несколькими сроками кода. Например рассмотрим обрезку и масштабирование изображений.

Это может пригодиться например при загрузке на хост изображения с автоматическим созданием превью.

Превью будет квадратным и генерировать его вот каким образом, из исходного изображения брать квадратный участок из центральной области и масштабировать его до размера превью.

Пошагово все расписывать не буду, просто приведу код с комментариями.

//— настраиваем параметры библиотеки работы с загрузками
$config['upload_path'] = ‘путь куда сохранять относительно корня хоста’ ;
/*разрешенной типы файлов*/
$config['allowed_types'] = ‘gif|jpg|png’;

/*подключаем библиотеку применяем конфиг*/
$this->CI->load->library(‘upload’, $config);

$this->CI->upload->initialize($config);
//— загружаем файл
if($this->CI->upload->do_upload(‘имя переменной поля type=»file»‘)){
/*получаем данные о загруженном файле*/
$filedata=$this->CI->upload->data();
/*делаем обрезку*/
/*размер стороны квадратной области из центра изображения (размер меньшей стороны изображения)*/
$image_size=0;
if($filedata['image_width']>$filedata['image_height']){
$image_size=$filedata['image_height'];
/*смещение слева*/
$image_x_axis = round(($filedata['image_width']-$filedata['image_height'])/2);
/*смещение сверху*/
$image_y_axis=0;
}else{
$image_size=$filedata['image_width'];
$image_x_axis = 0; $image_y_axis=round(($filedata['image_height']-$filedata['image_width'])/2);
}

/*настройка обрезки и создания превью*/
$config['image_library'] = ‘gd2′; /*какой библиотекой пользуемся*/
$config['source_image'] = $filedata['full_path'];/*путь к загруженному файлу*/
$config['x_axis'] = $image_x_axis;/*смещение слева*/
$config['y_axis'] = $image_y_axis;/*смещение сверху*/
$config['new_image'] = /*путь к изображению которое будет создано*/

$config['width'] = $image_size;/*ширина*/
$config['height'] = $image_size;/*высота*/
/*загружаем библиотеку работы с изображениями применяем конфиг*/
$this->CI->load->library(‘image_lib’, $config);
/*и вызываем функцию обрезки*/
$this->CI->image_lib->crop();
/*чистим конфиг*/
$this->CI->image_lib->clear();
/*делаем превью 175х175 ресайзом*/
/*назначаем новые данные для библиотеки работы с изображениями*/
$config['image_library'] = ‘gd2′;
$config['source_image'] = ‘Путь к изображению которое будем масштабировать (тот путь который используется в создании обрезке)’;
$config['new_image'] = ‘путь к файлу куда сохраним результат’;

$config['maintain_ratio'] = TRUE;
$config['width'] = 175;
$config['height'] = 175;
$this->CI->image_lib->initialize($config); // инициализируем новый конфиг

$this->CI->image_lib->resize(); // и вызываем функцию ресайза для превью

}

Тэги: , , ,

Правовая защита решает все семейные споры . Звоните! Приходите!
  • CodeIgniter получить id последней записи аналог mysql_insert_id()
  • php codeigniter отправка писем кириллицей
  • CodeIgniter ImageConvert конвертация изображений
  • Установка и настройка PHP framework CodeIgniter.
  • создать zip средствами php
  • Динамический base_url в CodeIgniter
  • Scaffolding CodeIgniter
  • 4 комментариев на “Crop и Resize изображений средствами CodeIgniter”

    1. Krugly:

      Дядя! Ты, наверное, даже не пробовал то, что написал! Ты хоть перед публикаций протести свой код в следующий раз!

    2. saintist:

      малчик, код я проверил, это фрагмент рабочего кода реально используемый в одном из проектов

      здесь приведен пример в какой последовательности и что нужно делать

      ps:а то что у тебя руки растут ниже пупку и мозг атрофировался так сам виноват.

    3. Вася:

      to Krugly Ты бредиi дружок. Вс нормально работает.

      to saintist:

      Спасибо за статью.
      В официальную документацию я толи не досмотрел, толи она реально неполная. Короче не видел там параметра new_image, спасибо, что подсказал его. Почему-то с create_thumb у меня не срослось в последней версии, обошел таким способом: в new_image добавил в путь папку thums и кидаю их туда. )) А на create_thumb забил нахрен ))

    4. saintist:

      я также не использую thumb, создаю новое изображение нужного мне размера отдельным куском кода

    Оставить комментарий