【发布时间】:2013-01-07 05:36:09
【问题描述】:
我的应用中唯一允许的方向是横向。我在目标>summery下的项目属性中强制执行此操作,并且只允许shouldAutorotateToInterfaceOrientation中的肖像
问题是当我水平握住手机(横向)拍照时,照片将以横向拍摄,而 UI 仍然是纵向模式。
这意味着在横向模式下,我获得了 3264 x 2448 的宽图像,而不是纵向模式下获得的高大图像 (2448 x 3264)。
接下来用户可以裁剪图像,但如果图像是在横向模式下拍摄的,我会得到非常难看的拉伸图像。添加边框或将 UI 切换为横向不是一种选择。
有没有办法强制UIImagePickerController 拍摄纵向尺寸的照片,即使手机水平握持(横向模式)?
我使用以下设置初始化UIImagePickerController:
imagePicker =[[UIImagePickerController alloc] init];
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
imagePicker.showsCameraControls = NO;
imagePicker.modalPresentationStyle = UIModalPresentationFullScreen;
imagePicker.wantsFullScreenLayout = YES;
imagePicker.cameraViewTransform = CGAffineTransformScale(imagePicker.cameraViewTransform,CAMERA_TRANSFORM, CAMERA_TRANSFORM);
imagePicker.navigationBarHidden = YES;
imagePicker.toolbarHidden = YES;
[self presentModalViewController:imagePicker animated:NO];
imagePicker.cameraOverlayView = self.cameraOverlay;
imagePicker.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff;
【问题讨论】:
-
嗨!我也有同样的问题。答案中提供的哪些选项解决了您的问题?
-
@doxsi 当时的 stripExif 为我解决了问题。
标签: iphone xcode orientation uiimagepickercontroller