Привет я использую класс манипуляции изображения Codigniter для создания миниатюры с фиксированным размером
Поэтому я не буду сначала изменять его размер (поэтому, когда я обрезаю его, я получаю большой мир изображения)
А потом обрезать его
Изменение размера работает, но урожай не
Вот функция, которую я создал
function _generate_thumbnail($filename)
{
$config['image_library'] = 'gd2';
$config['source_image'] = './project_pics/big/'.$filename;
$config['new_image'] = './project_pics/resize/'.$filename;
$config['maintain_ratio'] = TRUE;
$config['width'] = 650;
$this->load->library('image_lib');
$this->image_lib->initialize($config);
$this->image_lib->resize();
$this->image_lib->clear();
$config['image_library'] = 'gd2';
$config['source_image'] = './project_pics/resize/'.$filename;
$config['new_image'] = './project_pics/crop/'.$filename;
$config['width'] = 650;
$config['height'] = 450;
$config['x_axis'] = 0;
$config['y_axis'] = 0;
$this->load->library('image_lib');
$this->image_lib->initialize($config);
$this->image_lib->crop();
}
Есть некоторые ограничения использования Codeigniter image_lib
библиотека. Ты не можешь сделать "resize and crop"
за один раз с этой библиотекой.
Вам придется заново активировать image_lib
между каждым действием вот так:
function _generate_thumbnail($filename)
{
$config1 = $config2 = array();
$config1['image_library'] = 'gd2';
$config1['source_image'] = './project_pics/big/'.$filename;
$config1['new_image'] = './project_pics/resize/'.$filename;
$config1['maintain_ratio'] = TRUE;
$config1['width'] = 650;
$this->load->library('image_lib');
$this->image_lib->initialize($config1);
$this->image_lib->resize();
$this->image_lib->clear();
$config2['image_library'] = 'gd2';
$config2['source_image'] = './project_pics/resize/'.$filename;
$config2['new_image'] = './project_pics/crop/'.$filename;
$config2['width'] = 650;
$config2['height'] = 450;
$config2['x_axis'] = 0;
$config2['y_axis'] = 0;
$this->image_lib->initialize($config2);
$this->image_lib->crop();
}
Других решений пока нет …