【问题标题】:Cropping UIImagePickerController with overlay使用覆盖裁剪 UIImagePickerController
【发布时间】:2014-10-12 04:52:51
【问题描述】:

我正在尝试为 UIImagePickerController 创建一个方形叠加层。

我创建了一个NIB,其顶视图和底视图覆盖了UIImagePickerController,效果很好。

拍照的时候,好像照片的高宽比是1.33333。然而,框架从高度到宽度的比率(在 iphone 4s 上)是 1.5。

我怎样才能得到UIImagePickerController 正在拍照的确切frame?它不能覆盖整个屏幕,除非它在添加到父视图时被拉伸。

我需要正确的框架,这样我才能裁剪UIImagePickerController 创建的image。我不想让用户手动裁剪图像。

谢谢

【问题讨论】:

    标签: ios iphone image cocoa-touch uiimagepickercontroller


    【解决方案1】:

    在这篇文章的帮助下,我找到了答案:

    How to crop UIImagePickerController taken picture as it is on display

    用户拍照时,UIImagePickerController 似乎没有显示整个相框。

    在 iPhone 4s 的情况下,图像的侧面被剪掉了。如果不使用叠加层,拍照后可以清楚地看到这一点。

    【讨论】:

      【解决方案2】:

      如果你想创建一个方形覆盖,使用这个:

      UIImagePickerController *picker = [[UIImagePickerController alloc] init];
      picker.delegate = self;
      picker.sourceType = UIImagePickerControllerSourceTypeCamera;
      picker.allowsEditing = YES;
      

      要全屏显示捕获的图像,请使用:

      picker.allowsEditing = NO;
      CGSize screenSize = [[UIScreen mainScreen] bounds].size;
      float cameraAspectRatio = 4.0 / 3.0;
      float imageWidth = floorf(screenSize.width * cameraAspectRatio);
      float scale = ceilf((screenSize.height / imageWidth) * 10.0) / 10.0;
      
      imagePicker.cameraViewTransform = CGAffineTransformMakeScale(scale, scale)
      

      【讨论】:

        猜你喜欢
        • 2013-08-19
        • 2023-03-24
        • 2014-07-10
        • 2017-09-20
        • 2010-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-24
        相关资源
        最近更新 更多