imagecrop.php 
Что умеет? 
1. Ресайз обычный с полями 
2. Ресайз по ширине 
3. Ресайз по высоте 
4. Перевернуть 
5. Crop 
6. Управление качеством сжатия 
7. Управление цветом подложки 
Как использовать? 
Всивляем могдель, типа 
 
$this->load->model('tool/imagecrop');
Потом вызываем метод resize, например:  
1. Уменьшене по ширине с сохранением пропорции 
 
$this->model_tool_imagecrop->resize(
$product_info['image'], // путь к картинке от папки с картинками
100, // ширина миниатюры
0 // высои бугдет раслиина автоматически с сохранением пропорции
);
2. Crop и переворот на 90 градусов 
 
$this->model_tool_imagecrop->resize(
$product_info['image'], // путь к картинке от папки с картинками
500, // ширина миниатюры
500, // высои миниатюры
'0x000000',  // фон подложки черный
100, // качество 100%
true, // блять, не помню зачем я это сгделал. как-то связано с позиционированием относительно полей
90, // первернуть на 90 градусов
array('x1' => 10, 'x2' => 150, 'y1' => 10, 'y2' => 150) // координаты для crop относительно оригинального изображения
);
P.S. Обратите внимание, что resize можно использовать не только для уменьшения, но и для увеличения ;)