Я думаю, вам сначала нужно изменить размер изображения, выбрав ширину или высоту в качестве «основного» размера, а затем обрезать его.
Я не тестировал этот код, но попробую. Если ничего другого, это должно дать вам идею.
$config['source_image'] = '/path/to/image/mypic.jpg';
$config['width'] = 30;
$config['height'] = 0; // No restraint on height
$this->load->library('image_lib', $config);
$this->image_lib->resize();
$config['x_axis'] = 30; // Same width as before
$config['y_axis'] = 20; // Crop to height
$this->image_lib->initialize($config);
$this->image_lib->crop();
Вы можете вместо этого попытаться центрировать размеры обрезки. Какой бы способ вы ни выбрали, в какой-то момент изображение должно быть обрезано.
Должен заметить, что я не уверен, что $config['height'] = 0
- это правильный способ игнорировать высоту, возможно, он должен быть FALSE
, действительно большим числом или вообще удален (не работал с изображением CI через некоторое время).