Ios 设置UIImagePickerController的尺寸;移动和缩放“;cropbox

Ios 设置UIImagePickerController的尺寸;移动和缩放“;cropbox,ios,cocoa-touch,ipad,uiimagepickercontroller,crop,Ios,Cocoa Touch,Ipad,Uiimagepickercontroller,Crop,“移动和缩放屏幕”如何确定其cropbox的尺寸 基本上,我想为“CropRect”设置一个固定的宽度和高度,并让用户根据需要移动和缩放他的图像以适应该框 有人知道怎么做吗?(或者如果使用UIImagePickerController也可以) 谢谢 不幸的是,UIImagePickerController不可能。我建议的解决方案是禁用图像选择器的编辑功能,然后自己处理。例如,我将图像放在可滚动、可缩放的图像视图中。在图像视图的顶部是一个固定位置的“裁剪向导视图”,用于绘制用户看到的裁剪指示器。假

“移动和缩放屏幕”如何确定其cropbox的尺寸

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

有人知道怎么做吗?(或者如果使用UIImagePickerController也可以)


谢谢

不幸的是,UIImagePickerController不可能。我建议的解决方案是禁用图像选择器的编辑功能,然后自己处理。例如,我将图像放在可滚动、可缩放的图像视图中。在图像视图的顶部是一个固定位置的“裁剪向导视图”,用于绘制用户看到的裁剪指示器。假设导向视图具有可见矩形(要保留的零件)和边宽度(要丢弃的零件)的属性,则可以获得如下所示的裁剪矩形。您可以使用该类别进行实际裁剪

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];

游戏开始有点晚了,但我想这可能就是你想要的:

这里有一个明阳手动裁剪的解决方案。

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


它是用Objective-C编码的。您可能需要用Swift编码,或者只需构建一个桥接头来连接Objective-C代码和Swift代码

现在已经晚了,但可能对某些人有用。这是我为swift使用的库(非常感谢):

如上面GitHub链接中的自述文件所述,通过使用此库,您可以以用户定义的矩形和圆形模式获得裁剪图像,例如用于更新配置文件图像。 下面是GitHub的示例代码:

func presentCropViewController {
  let image: UIImage = ... //Load an image

  let cropViewController = CropViewController(image: image)
  cropViewController.delegate = self
  present(cropViewController, animated: true, completion: nil)
}

func cropViewController(_ cropViewController: CropViewController, didCropToImage image: UIImage, withRect cropRect: CGRect, angle: Int) {
        // 'image' is the newly cropped version of the original image
    }

好吧,我在未来的土地这里一定很欣赏它!我爱你,这为我节省了很多时间。如何将它用于相机?当它出现时,如何能够为imagepicker制作更大的尺寸?它在iOS7中有点缺陷,我会寻找另一种解决方案(目前我自己)。请提供示例项目或其他任何内容。@Marc。您如何指导我如何更好地使用swift,而不是我找到的任何其他库。有人能为swift提供相同的解决方案吗?欢迎使用堆栈溢出!虽然链接是分享知识的好方法,但如果将来它们被破坏了,它们就不会真正回答这个问题。在回答中添加回答问题的链接的基本内容。如果内容太复杂或太大而不适合此处,请描述建议解决方案的总体思路。请记住始终保留原始解决方案网站的链接引用。见: