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



我正在用UIImagePickerController拍照。在iPad和iPhone 5上一切都很好。问题出在iPhone4上:我从拾取器上得到的照片比我拍照时在屏幕上看到的"大"。

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

PD:我没有对拾取器上的图像应用任何变换。

-(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);
}

在这里你可以看到原始图像的大小是多少,之后你可以根据自己的意愿更改大小。。

iPhone4上的预览有问题……iPhone4的预览是16:9,但最终图像是4:3。在iPhone5和iPad上,预览和最终图像都是4:3。

我以前没有意识到这一点,因为我的覆盖层隐藏了iPhone4上的部分预览,所以我认为预览也是4:3(我认为iOS6的预览是4:3,我不确定,我必须找到一个iOS6的iPhone4)。

我把我的覆盖(UIToolbar)做成半透明的,现在我得到了我想要的。

最新更新