UIImagePickerController返回的图像大于iPhone 4上的预览图像

时间:2013-11-29 12:30:32

标签: ios iphone image camera uiimagepickercontroller

我正在用UIImagePickerController拍照。一切都在iPad和iPhone 5上运行良好。问题来自iPhone4:我从选择器获得的照片比我拍摄照片时在屏幕上看到的“更大”。

我的意思是什么?我的意思是在照片的两侧和底部,我看到拍摄照片时相机没有显示的部分场景。这是我的应用程序的问题。我需要拍摄用户在拍摄照片时通过相机看到的完全相同的场景。不是一个更大的场景。正如我所说,在iPhone5和iPad4上一切正常。我不明白这种不同的行为。我该如何解决这个问题?

PD:我没有对选择器上的图像应用任何转换。

2 个答案:

答案 0 :(得分:1)

-(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info
{
    UIImage* originalImage = [info valueForKey:@"UIImagePickerControllerOriginalImage"];
    NSLog(@"Image Size Width %f  Height %f",originalImage.size.width,originalImage.size.height);

    UIGraphicsBeginImageContext(CGSizeMake(320, 480));
    [originalImage drawInRect:CGRectMake(0,0,320,480)];
    UIImage* image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    NSLog(@"image Size h %f  Width %f",[image size].height, [image size].width);

}

在这里你可以看到什么是原始图像尺寸,然后你可以改变尺寸..

答案 1 :(得分:0)

iPhone4上的预览存在问题... iPhone4上的预览为16:9,但最终图像为4:3。在iPhone5和iPad上,预览和最终图像均为4:3。

之前我没有意识到,因为我的叠加层隐藏了iPhone4上预览的一部分,所以我认为预览也是4:3(我觉得iOS6的预览是4:3,我是不确定,我必须找到一个带iOS6的iPhone4。

我使我的叠加层(UIToolbar)半透明,现在我得到了我想要的东西。