捏和平移以裁剪UIImage

时间:2013-09-23 06:14:11

标签: iphone objective-c uiimageview crop pinch

我想添加一个Pinch和Pan手势,它会在我的ViewController上裁剪UIImage视图。要裁剪图像,只需捏合/平移相应的图像,它就会调整大小。

我目前有Take Pic和Choose Image按钮相应地将相应的图像抓取到UIImageView框中,但我希望能够在视图中捏合并平移大小并裁剪图像。

我希望盒子保持固定在当前大小,其中的图像将是调整大小和裁剪的图像。

PS。我正在使用故事板

这是我所拥有的截图。 http://i.stack.imgur.com/chkk5.png

我在想,正确的方向是在故事板中为每个uiimageviews添加一个滑动和平移手势,但不知道该怎么做。

2 个答案:

答案 0 :(得分:0)

我过去的一般策略是将UIImageView放在另一个UIView中(为了剪辑它)并向父UIView添加UIPinchGestureRecognizerUIPanGestureRecognizer。当您收到其中任何一个的事件时,您将适当的转换应用于UIImageView的transform属性。

例如,缩放时,您将执行以下操作:

-(void)scale:(UIPinchGestureRecognizer*)pinch
{
 float scale = pinch.scale;
 imageView.transform = CGAffineTransformScale(imageView.transform, scale, scale);
 pinch.scale = 1;
}

重新调整比例的最后一步非常重要,因为您每次只是缩放现有的变换而不是基本身份变换。您应该会发现,您可以使用UIPanGestureRecognizer及其translationInView:方法处理转化转换(请记住,您还必须使用setTranslationInView:CGPointZero重置此转换。

最后,为了获得裁剪/剪裁UIImage,您可以捕获视图的内容(我相信转换属性仅在iOS 7+上受到尊重),或者将UIImage渲染为{{1并使用相同的变换来转换CGContextRef

答案 1 :(得分:0)

您可以使用以下链接...

Crop image