ipad UIImagePickerController在预览和拍摄风景时的大小不同

时间:2013-07-05 06:45:03

标签: ios uiimagepickercontroller uipopover

我一直在阅读不同的答案,但还没能解决这个问题:

在我的iPad应用程序横向模式中,我有一个UIImagePickerController来拍摄这个选择器在UIPopoverController中显示的图片。

问题是预览时和拍照后的图像尺寸不同

预览:

image on preview

拍摄照片后:

taken pic

这里是我设置选择器和popOver的代码:

BOOL hasCamera = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];

    picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;

    picker.sourceType = hasCamera ? UIImagePickerControllerSourceTypeCamera :    UIImagePickerControllerSourceTypePhotoLibrary;

    picker.modalPresentationStyle = UIModalPresentationFullScreen;

    picker.cameraDevice = UIImagePickerControllerCameraDeviceFront; 
    [picker setShowsCameraControls:FALSE];

    self.companyPopOverController = [[[UIPopoverController alloc] initWithContentViewController:picker] autorelease];

    self.companyPopOverController.passthroughViews=[NSArray arrayWithObject:self.view];
[self.companyPopOverController presentPopoverFromRect:CGRectMake(622, 534, 10, 10) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];

并显示拍摄的照片:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{

    UIImage *image=[info objectForKey:UIImagePickerControllerOriginalImage];
    [self.picImage setImage:image];
    [self.companyPopOverController dismissPopoverAnimated:YES];
    self.imageTaken = YES;
}

那么如何使我的预览图像与实际拍摄的图像大小相同?

谢谢!

1 个答案:

答案 0 :(得分:1)

我看到你的样本图像有2个不同之处:大小和水平翻转。

尺寸差异可能是因为您正在设置picker.modalPresentationStyle = UIModalPresentationFullScreen;,但之后您将在较小的弹出框中显示它。 我会尝试在没有弹出窗口的情况下呈现选择器,看看它是否有效。

此外,预览图像看起来有点失真。如果您使用缩放以填充作为imageView的contentMode,那么我会将其更改为 Aspect Fill

我不知道水平翻转可能来自哪里。