我正在尝试为UIImagePickerController创建一个方形叠加层。
我创建了一个NIB
,其顶部和底部视图覆盖了UIImagePickerController
,效果很好。
拍摄照片时,照片从高到宽的比例似乎是1.33333。然而,框架从高度到宽度的比率(在iphone 4s上)是1.5。
如何获得frame
拍摄照片的确切UIImagePickerController
?它不能覆盖整个屏幕,除非在添加到父视图时被拉伸。
我需要正确的框架,以便裁剪image
创建的UIImagePickerController
。我不想让用户手动裁剪图像。
由于
答案 0 :(得分:0)
在这篇文章的帮助下,我找到了答案:
How to crop UIImagePickerController taken picture as it is on display
当用户拍照时,UIImagePickerController似乎没有显示整个相框。
对于iPhone 4s,图像的两侧被剪掉。如果您不使用叠加层,则可以在拍照后清楚地看到这一点。
答案 1 :(得分:0)
如果要创建方形叠加层,请使用:
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)