从UIImagePicker中删除摄像头控件 - 如何缩放到全屏 - iPhone/iPad

问题描述:

我在我的应用程序中显示一个UIImagePicker减去摄像头控件下面的代码。从UIImagePicker中删除摄像头控件 - 如何缩放到全屏 - iPhone/iPad

#define CAMERA_SCALAR 1.32 

@implementation CameraViewController 

- (id)init { 
// Remove standard controls from UIImagePicker and make full screen 
if (self = [super init]) { 
    self.sourceType = UIImagePickerControllerSourceTypeCamera; 
    self.showsCameraControls = NO; 
    self.navigationBarHidden = YES; 
    self.toolbarHidden = YES; 
    self.wantsFullScreenLayout = YES; 
    self.cameraViewTransform = CGAffineTransformScale(self.cameraViewTransform, 1, CAMERA_SCALAR);   
} 
return self; 
} 

最初,当我删除设置showsCameraControls为NO我有一个黑色的控制杆已经在屏幕上。为了抵消这一点,我添加了self.cameraViewTransform线来放大视图。

这有效,但它扭曲了图像。我认为我需要做的也是按照与宽度相同的比例来调整高度。

任何人都可以告诉我最好的方法来做到这一点?

在此先感谢!

我可能会误解你的问题,但规模的宽度,以及,你可以

self.cameraViewTransform = CGAffineTransformScale(self.cameraViewTransform, CAMERA_SCALAR, CAMERA_SCALAR); 

,而不是

self.cameraViewTransform = CGAffineTransformScale(self.cameraViewTransform, 1, CAMERA_SCALAR); 

但当然,这将推动摄像机视野的边在屏幕之外。


原则上,我认为在这种情况下,没有最好的选择(确切地显示相机显示全屏的),因为问题的根源是屏幕/相机的纵横比的差异。你或者不得不错过部分观点,或者扭曲观点,这是我的想法。

+0

谢谢大麦 - 这就是我的想法。 1.32是最好的标量值还是比较紧的? – GuybrushThreepwood 2012-01-16 13:41:53

+0

在我读过的书(凯尔罗氏Pro iOS5增强现实)中,它使用了1.3。 – barley 2012-01-16 13:55:53

+0

谢谢 - 不知道数学背后是什么 - 理论不应该是56/480的标量吗? (56是contols的宽度)。奇怪的。 – GuybrushThreepwood 2012-01-16 13:57:38