如何将UIImage picker摄像头的方向更改为横向?
问题描述:
我在IOS.I新手工作的演示项目中,我应该打开UIImagepicker挑选照片和相机捕获新的,在所有方向。 我知道UIImagepicker只支持纵向,但我做了一个UIImagePicker类别类,其中我重写了支持方向的方向方法。如何将UIImage picker摄像头的方向更改为横向?
问题是我的UIImagePicker在所有方向都完美打开,但相机旋转了90度,当我切换到任何横向模式时,屏幕会进入半屏。
所以要解决这个问题,我添加了一个观察者,当方向改变时触发通知。
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged) name:@"UIDeviceOrientationDidChangeNotification" object:nil];
和被调用的方法是
- (void) orientationChanged
{
if (self.imagePickerController.sourceType==UIImagePickerControllerSourceTypeCamera)
{
@try {
if (orientation == UIInterfaceOrientationLandscapeLeft)
{
transform=CGAffineTransformRotate(transform,LANDSCAPE_NEGATIVE_ANGLE * M_PI/LANDSCAPE_ANGLE);
transform=CGAffineTransformTranslate(transform, -75, -80);
[self.imagePickerController setCameraViewTransform:transform];
}
else if (orientation == UIInterfaceOrientationLandscapeRight)
{
transform=CGAffineTransformRotate(transform,LANDSCAPE_NEGATIVE_ANGLE * M_PI/LANDSCAPE_ANGLE);
transform=CGAffineTransformTranslate(transform, 75, 80);
[self.imagePickerController setCameraViewTransform:transform];
}
else
{
// CGAffineTransform tmpTransform=PORTRAIT_Transform;
transform=CGAffineTransformRotate(transform,LANDSCAPE_NEGATIVE_ANGLE * M_PI/90);
transform=CGAffineTransformTranslate(transform, 0, 0);
[self.imagePickerController setCameraViewTransform:transform];
}
}
@catch (NSException *exception)
{
NSLog(@"Exception occured, Details :%@",exception);
}
@finally {
}
}
}
,当我在纵向模式下打开相机,然后我改到其他方向这种方法工作正常,我。但是,当我在横向模式下打开相机时,所有的事情都搞乱了。 我知道我在这里使用了静态值,但我没有任何其他选择。
有没有人有任何建议或替代选择。我会非常感谢他/她。
在此先感谢!
我很感谢你的回答,第一个链接说这是不可能的技术上...我知道,而另一个答案谈UIImage不是关于UIImgePicker相机! Thanx for concers –
因此,如果从定位设备纠察,您可以旋转图像... –
从相机捕获的图像即将完美。但问题是相机覆盖视图变得混乱! –