             return self.image?.rotatedImageWithtransform(self.rotation, rect: self.zoomedCropRect)
         }
     }
-    var zoomedCropRect: CGRec
-    var rotation: CGAffineTransform!
-    var userHasModifiedCropArea: Bool!
+    var zoomedCropRect: CGRect {
+        set {
+            
+        }
+        get {
+            let cropRect = self.convertRect(self.scrollView.frame, toView: self.zoomingView)
+            let size = self.image!.size
+            
+            var ratio: CGFloat = 1.0
+            let orientation = UIApplication.sharedApplication().statusBarOrientation
+            if (UIInterfaceOrientationIsPortrait(orientation)) {
+                ratio = CGRectGetWidth(AVMakeRectWithAspectRatioInsideRect(self.image!.size, self.insetRect)) / size.width
+            } else {
+                ratio = CGRectGetHeight(AVMakeRectWithAspectRatioInsideRect(self.image!.size, self.insetRect)) / size.height
+            }
+            
+            let zoomedCropRect = CGRectMake(cropRect.origin.x / ratio,
+                cropRect.origin.y / ratio,
+                cropRect.size.width / ratio,
+                cropRect.size.height / ratio)
+            
+            return zoomedCropRect
+        }
+    }
+    var rotation: CGAffineTransform! {
+        set {
+            
+        }
+        get {
+            return self.imageView!.transform
+        }
+    }
+    var userHasModifiedCropArea: Bool! {
+        set {
+            
+        }
+        get {
+            let zoomedCropRect = CGRectIntegral(self.zoomedCropRect);
+            return (!CGPointEqualToPoint(zoomedCropRect.origin, CGPointZero) ||
+                !CGSizeEqualToSize(zoomedCropRect.size, self.image!.size) ||
+                !CGAffineTransformEqualToTransform(self.rotation, CGAffineTransformIdentity))
+        }
+    }
     var keepingCropAspectRatio: Bool! {
         set {
             self.cropRectView.keepAspectRatio = self.keepingCropAspectRatio

        cropRect.size = CGSizeMake(width, height);
        self.zoomToCropRect(cropRect, center: center)
    }
}

            return self.imageCropRect
        }
    }
    var rotationAngle: CGFloat! {
        get {
            let rotation = self.imageView!.transform
            return CGFloat(atan2f(Float(rotation.b), Float(rotation.a)))
        }
        set {
            self.imageView!.transform = CGAffineTransformMakeRotation(rotationAngle)
        }
    }
    var rotationGestureRecognizer: UIRotationGestureRecognizer!
    
    private let MarginTop: CGFloat = 37.0
