[英]Pinch and Pan to Crop UIImage
我想添加一个Pinch和Pan手势,可以在ViewController上裁剪UIImage视图。 要裁剪图像,只需捏/平移适当的图像,它将调整大小。
我目前拥有“拍摄照片”和“选择图像”按钮,可以将相应的图像相应地捕获到UIImageView框中,但是我希望能够捏合和平移大小并在视图中裁剪图像。
我希望框保持其当前大小不变,并且其中的图像将是调整大小和裁剪的图像。
PS。 我正在使用情节提要
这是我所拥有的屏幕截图。 http://i.stack.imgur.com/chkk5.png
我以为正确的方向是向情节提要中的每个uiimageviews添加滑动和平移手势,但不确定该怎么做。
过去,我通常的策略是将UIImageView放置在另一个UIView中(以便对其进行裁剪),并向父UIView添加UIPinchGestureRecognizer
和UIPanGestureRecognizer
。 当您收到其中任何一个的事件时,将适当的转换应用于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+上才可以使用transform属性),也可以将UIImage渲染为CGContextRef
,然后使用相同的变换来变换CGContextRef
。
您可以使用以下链接...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.