如何解决根据设备方向保存照片
| 以下代码为我提供了人像模式下的照片,而与方向无关。如何确保照片符合当前方向?-(void) TakePhotoWithCamera
{
[self startCameraPickerFromViewController:self usingDelegate:self];
}
- (BOOL)startCameraPickerFromViewController:(UIViewController*)controller usingDelegate:(id<UIImagePickerControllerDelegate>)delegateObject
{
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.allowsImageEditing = YES;
picker.delegate = self;
[controller presentModalViewController:picker animated:YES];
[picker release];
}
return YES;
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage * img = [info objectForKey:@\"UIImagePickerControllerEditedImage\"];
[self useImage:img];
[[picker parentViewController] dismissModalViewControllerAnimated:YES];
}
-(void)useImage:(UIImage *)theImage {
NSData *addImageData = UIImagePNGRepresentation(theImage);
// Here we return the Image
}
我的应用是纵向模式。如果我从图库或相机中选择图像,则得到的是带有上述编码的图块。
解决方法
从iPhone相机拍摄的图像将具有方向
(UIImageOrientation)
信息(EXIF信息)。这准确地告诉了图像的方向。如果查看器能够理解此信息,它将正确显示它们,否则您将按原样查看图像(我想Safari不尊重方向,只需将Safari与Safari进行比较即可)。
现在,在捕获图像后遵循一个(伪)标准过程,以使其成为默认方向(UIImageOrientationUp)并内部旋转实际图像-这使得该图像可在任何查看器上查看。
请检查以下内容并使用scaleAndRotate函数。这将解决您的问题。
UIImagePickerController相机预览是横向应用中的人像。
也请看一下我对相关问题的回答(如何将其设置为“仅纵向”或“仅横向”),它也可能对您有所帮助
UIImagePickerController-SourceType摄像头-允许仅纵向拍摄照片
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。