|
|
@@ -116,15 +116,29 @@
|
|
|
|
|
|
CGRect imgRect = self.imgView.frame;
|
|
|
CGRect editRect = self.editContainer.frame;
|
|
|
- CGRect screenRect = self.view.bounds;
|
|
|
- CGFloat screen_img_x = (CGRectGetWidth(imgRect) - CGRectGetWidth(screenRect)) * 0.5;
|
|
|
- CGFloat screen_img_y = (CGRectGetHeight(imgRect) - CGRectGetHeight(screenRect)) * 0.5;
|
|
|
- CGRect rect = CGRectMake(screen_img_x + editRect.origin.x, screen_img_y + editRect.origin.y, editRect.size.width, editRect.size.height);
|
|
|
+// CGRect screenRect = self.view.bounds;
|
|
|
+// CGFloat screen_img_x = (CGRectGetWidth(imgRect) - CGRectGetWidth(screenRect)) * 0.5;
|
|
|
+// CGFloat screen_img_y = (CGRectGetHeight(imgRect) - CGRectGetHeight(screenRect)) * 0.5;
|
|
|
+// CGRect rect = CGRectMake(screen_img_x + editRect.origin.x, screen_img_y + editRect.origin.y, editRect.size.width, editRect.size.height);
|
|
|
+//
|
|
|
+// CGFloat scale = self.preImage.size.width / CGRectGetWidth(imgRect);
|
|
|
+//
|
|
|
+// CGRect clipImgRect = CGRectMake(rect.origin.x * scale, rect.origin.y * scale, rect.size.width * scale, rect.size.height * scale);
|
|
|
+
|
|
|
+ CGPoint contentOffset = self.previewScroll.contentOffset;
|
|
|
+ CGRect clipRect = CGRectMake(editRect.origin.x + contentOffset.x, editRect.origin.y + contentOffset.y - imgRect.origin.y, editRect.size.width, editRect.size.height);
|
|
|
|
|
|
- CGFloat scale = self.preImage.size.width / CGRectGetWidth(imgRect);
|
|
|
+ CGFloat w = CGImageGetWidth(self.preImage.CGImage);
|
|
|
+ CGFloat h = CGImageGetHeight(self.preImage.CGImage);
|
|
|
|
|
|
- CGRect clipImgRect = CGRectMake(rect.origin.x * scale, rect.origin.y * scale, rect.size.width * scale, rect.size.height * scale);
|
|
|
+ CGFloat xp = clipRect.origin.x / imgRect.size.width;
|
|
|
+ CGFloat yp = clipRect.origin.y / imgRect.size.height;
|
|
|
+ CGFloat wp = clipRect.size.width / imgRect.size.width;
|
|
|
+ CGFloat hp = clipRect.size.height / imgRect.size.height;
|
|
|
|
|
|
+ CGSize size = self.preImage.size;
|
|
|
+ CGRect clipImgRect = CGRectMake(size.width * xp, size.height * yp, size.width * wp, size.height * hp);
|
|
|
+// CGRect clipImgRect = CGRectMake(w * xp, h * yp, h * hp, w * wp);
|
|
|
|
|
|
UIImage *img = [self captureImageWithImage:self.preImage inRect:clipImgRect];
|
|
|
self.photoHandler(img);
|
|
|
@@ -138,6 +152,14 @@
|
|
|
return self.imgView;
|
|
|
}
|
|
|
|
|
|
+- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
|
|
|
+
|
|
|
+ CGRect imgRect = self.imgView.frame;
|
|
|
+ CGSize contentSize = scrollView.contentSize;
|
|
|
+ contentSize.height += imgRect.origin.y;
|
|
|
+ scrollView.contentSize = contentSize;
|
|
|
+}
|
|
|
+
|
|
|
#pragma mark - pinch
|
|
|
|
|
|
- (void)imageViewPinch:(UIPinchGestureRecognizer *)pinch{
|