2012-01-28 194 views
35

“移动和缩放屏幕”如何确定其裁剪框的尺寸?设置UIImagePickerController“移动和缩放”裁剪框的尺寸

基本上我想为“CropRect”设置一个固定的宽度和高度,并让用户按照需要移动和缩放他的图像以适应该框。

有谁知道如何做到这一点? (或者如果它甚至可以用UIImagePickerController)

谢谢!

+0

有人可以有相同的解决方案迅速? – 2018-02-28 10:18:30

回答

33

不幸的是,UIImagePickerController不可能。我建议的解决方案是禁用图像选择器的编辑并自己处理。例如,我把图像放在一个可滚动的,可缩放的图像视图中。在图像视图的顶部是固定位置“裁剪指南视图”,该位置绘制用户看到的裁剪指示符。假设指南视图具有可见矩形(要保留的部分)和边缘宽度(要放弃的部分)的属性,则可以像这样获取裁剪矩形。您可以使用UIImage+Resize类别进行实际裁剪。

CGRect cropGuide = self.cropGuideView.visibleRect; 
UIEdgeInsets edges = self.cropGuideView.edgeWidths; 
CGPoint cropGuideOffset = self.cropScrollView.contentOffset; 

CGPoint origin = CGPointMake(cropGuideOffset.x + edges.left, cropGuideOffset.y + edges.top); 
CGSize size = cropGuide.size; 
CGRect crop = { origin, size }; 

crop.origin.x = crop.origin.x/self.cropScrollView.zoomScale; 
crop.origin.y = crop.origin.y/self.cropScrollView.zoomScale; 
crop.size.width = crop.size.width/self.cropScrollView.zoomScale; 
crop.size.height = crop.size.height/self.cropScrollView.zoomScale; 

photo = [photo croppedImage:crop]; 
+0

完美答案。谢谢! – 2012-02-01 22:49:02

+11

您可以请提供示例项目或其他任何东西。 – 2013-09-16 09:20:28

+0

@Marc。你怎么能指导我如何使用swift – 2017-01-09 09:39:09

3

这里是明阳手工裁剪的解决方案。 https://github.com/myang-git/iOS-Image-Crop-View

它提供了一个矩形框架,用户可以滑动或拖动矩形框架以适应矩形中所需的图像部分。请注意,这个解决方案与问题相反 - 让矩形大小变化,但最终会带来理想的结果。

它在Objective-C中编码。您可能需要在Swift中编写它,或者只需构建一个桥接头来将Objective-C代码与Swift代码连接起来。

+1

比我找到的任何其他库更好。 – 2015-11-19 11:58:55