设置UIImagePickerController“移动和缩放”裁剪框的尺寸

时间:2012-01-28 00:07:57

标签: ios cocoa-touch ipad uiimagepickercontroller crop

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

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

有谁知道怎么做? (或者甚至可以使用UIImagePickerController)

谢谢!

4 个答案:

答案 0 :(得分:36)

遗憾的是UIImagePickerController无法实现。我建议的解决方案是禁用图像选择器的编辑并自行处理。例如,我将图像放在可滚动的可缩放图像视图中。在图像视图的顶部是固定位置“裁剪指南视图”,其绘制用户看到的裁剪指示符。假设引导视图具有可见rect(要保留的部分)和边缘宽度(要丢弃的部分)的属性,您可以像这样获得裁剪矩形。您可以使用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];

答案 1 :(得分:24)

有点迟到,但我认为这可能是你要找的:https://github.com/gekitz/GKImagePicker

答案 2 :(得分:4)

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

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

它在Objective-C中编码。您可能必须在Swift中对其进行编码,或者只是构建一个桥接头以将Objective-C代码与Swift代码连接起来。

答案 3 :(得分:1)

现在比较晚,但可能对某人有用。这是我用于swift的库(非常感谢Tim Oliver):

TOCropViewController

如上面的GitHub链接中的README文件中所述,通过使用该库,您可以获得用户定义的矩形以及圆形模式中的裁剪图像,例如:用于更新个人资料图片 下面是GitHub的示例代码:

{{1}}