Невозможно обрезать изображение при первом изменении размера

Я использую библиотеку Image Manipulation в Codeigniter, и мне нужно изменить размер изображения до максимальной ширины 278 пикселей при сохранении отношения. Я также должен убедиться, что изображение не превышает 400 пикселей.

Я $this->image_lib->resize() сделать это, используя $this->image_lib->resize() а затем снова запустив его, используя $this->image_lib->crop() , но у меня возникают проблемы с изменением размера, $this->image_lib->crop() на урожай.

Вот две модели:

 public function create_thumb($path) { $data = $this->upload->data(); if ($data['image_width'] >= 278): $config['image_library'] = 'gd2'; $config['source_image'] = $path; $config['create_thumb'] = FALSE; $config['maintain_ratio'] = TRUE; $config['width'] = 278; $config['height'] = 400; $config['quality'] = '90%'; $config['master_dim'] = 'width'; $this->load->library('image_lib', $config); if ($this->image_lib->resize()): $this->image_lib->clear(); endif; endif; $this->crop_image($path); return false; } // Make max image size 278x400 public function crop_image($path) { list($width, $height) = getimagesize($path); $config['image_library'] = 'gd2'; $config['source_image'] = $path; $config['x_axis'] = '0'; $config['y_axis'] = '0'; $config['maintain_ratio'] = FALSE; $config['width'] = $width; $config['height'] = 400; $config['quality'] = '100%'; $this->load->library('image_lib', $config); if ($this->image_lib->crop()) { return true; } return false; } 

Если я вызову crop_image () непосредственно из контроллера, он помечается как ожидалось. Однако, когда он Your server does not support the GD function required to process this type of image. из create_thumb (), я получаю сообщение об ошибке. Your server does not support the GD function required to process this type of image. Так как я могу обрезать изображение ранее, и GD установлен в соответствии с phpinfo (), я смущен тем, почему я получаю эту ошибку.

Я думаю, проблема связана с загрузкой image_lib дважды, но я думал, что $this->image_lib->clear(); решат эту проблему?

Что я делаю не так? Есть ли лучший способ изменить размер изображения до максимальной ширины 278 пикселей и максимум 400 пикселей в высоту?