我正在用UIImagePickerController拍照。一切都在iPad和iPhone 5上运行良好。问题来自iPhone4:我从选择器获得的照片比我拍摄照片时在屏幕上看到的“更大”。
我的意思是什么?我的意思是在照片的两侧和底部,我看到拍摄照片时相机没有显示的部分场景。这是我的应用程序的问题。我需要拍摄用户在拍摄照片时通过相机看到的完全相同的场景。不是一个更大的场景。正如我所说,在iPhone5和iPad4上一切正常。我不明白这种不同的行为。我该如何解决这个问题?
PD:我没有对选择器上的图像应用任何转换。
答案 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)半透明,现在我得到了我想要的东西。