protected function createImageSet($src_image)
 {
     Yii::import('application.extensions.ImageCropper');
     //Yii::log("Load source img: ".memory_get_usage(true),"info","MemmorySize");
     $cropper = new ImageCropper($src_image);
     $parts = preg_split('/[\\/\\\\]/', $src_image);
     $fileName = array_pop($parts);
     foreach ($this->pictures() as $type => $pic) {
         if (isset($pic['vertical']) || isset($pic['horizontal'])) {
             $Info = getimagesize($src_image);
             $orientation = $Info[0] < $Info[1] ? 'vertical' : 'horizontal';
             if (isset($pic[$orientation])) {
                 $w = $pic[$orientation]['w'];
                 $h = $pic[$orientation]['h'];
             }
         } else {
             $w = $pic['w'];
             $h = $pic['h'];
         }
         $filePath = $_SERVER['DOCUMENT_ROOT'] . $pic['path'] . $fileName;
         if ($w == null && $h == null) {
             if (!copy($src_image, $filePath)) {
                 return false;
             }
         } else {
             //Yii::log("Before resize \"".$type."\": ".memory_get_usage(true),"info","MemmorySize");
             if (!$cropper->resize_and_crop($filePath, $w, $h)) {
                 return false;
             }
             //Yii::log("After resize \"".$type."\"".memory_get_usage(true),"info","MemmorySize");
         }
     }
     $cropper = null;
     return $fileName;
 }
 public function afterSave($event)
 {
     parent::afterSave($event);
     $newNames = array();
     $i = 0;
     foreach ($this->fields as $field) {
         if ($this->owner->{$field} instanceof CUploadedFile) {
             //generating the new filename and subtituting it in the entry
             $fileName = $newNames[$field] = preg_replace('/\\*([a-zA-Z_]+[a-zA-Z0-9_]*)\\*/e', '\\$this->owner->$1', $this->nameMask) . '.jpg';
             if ($this->prependFileName) {
                 $fileName = $field . '_' . $fileName;
             }
             $cropper = new ImageCropper();
             //creating the original image
             if ($this->resize) {
                 $cropper->resize_and_crop($this->owner->{$field}->tempName, self::getImagePath($fileName), $this->resizeTo[$i][0], $this->resizeTo[$i][1], $this->fileQuality, true);
             } else {
                 $this->owner->{$field}->saveAs(self::getImagePath($fileName));
             }
             //and now, the thumbnail
             if ($this->hasThumb) {
                 $thumbName = $this->generateThumbName($fileName);
                 $cropper->resize_and_crop(self::getImagePath($fileName), self::getImagePath($thumbName), $this->thumbSize[$i][0], $this->thumbSize[$i][1], $this->thumbQuality, true);
             }
         }
         ++$i;
     }
     //now we need to update the entry with the new filename
     if (sizeof($newNames) > 0) {
         $reg = $this->owner->findByPk($this->owner->primaryKey);
         foreach ($newNames as $field => $newName) {
             $reg->{$field} = $newName;
         }
         $reg->save(false);
     }
 }
<?php

namespace cd;

set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/../core/');
require_once 'core.php';
require_once 'ImageCropper.php';
$file = '/home/ml/Skrivbord/DSC_1853.JPG';
$x = new ImageCropper($file);
$x->crop(500, 500, 1200, 1200);
$x->render('png', 'cropped.png');