1

コールバックでカメラから直接画像を取得するか、カメラロールから画像を選択するかによって、一貫性のない結果が得られます。

UIImagePickerControllerDelegateコールバックメソッドでは、写真の撮影方法に関係なく、がUIImage.imageOrientation表示されます。UIImageOrientationRight

カメラロールから読み取ると、横向きのショット(左に曲がった)が表示されUIImageOrientationUp、縦向きのショットが表示されUIImageOrientationRightます。

両方の状況でカメラの向きを確実に取得するにはどうすればよいですか?

4

3 に答える 3

3

これをAppleフォーラムに投稿し、説明を得ました:

「カメラは実際には横向きのネイティブなので、横向きで写真を撮ると上または下になり、縦向きで写真を撮ると左または右になります(デバイスの持ち方によって異なります)。」

見る:

https://devforums.apple.com/message/301160#301160

ありがとう:

https://devforums.apple.com/people/Rincewind

于 2010-09-23T17:55:50.283 に答える
0

写真を撮った後に imageOrientation プロパティを試してみましたが、方向の値がめちゃくちゃになっているので面白いです。上が左、下が右、左が下、右が上です。たとえば、iPhone を「上」(通常の位置) にすると、imageOrientation は「UIImageOrientationRight」になります。

- (void)imagePickerController:(UIImagePickerController *)picker
  didFinishPickingImage:(UIImage *)image
      editingInfo:(NSDictionary *)editingInfo {
    switch (image.imageOrientation) {
      case UIImageOrientationUp: //Left
       break;
      case UIImageOrientationDown: //Right
       break;
      case UIImageOrientationLeft: //Down
       break;
      case UIImageOrientationRight: //Up
       break;
      default:
       break;
     }
}

現在、iOS 3.1 を対象とした 4.1 SDK GM (xcode_3.2.4_and_ios_sdk_4.1_gm_seed) を使用しています。

于 2010-09-08T16:04:27.280 に答える
-1

UIImagePickerController がハードウェアの向きのイベントをリッスンしないことをどこかで読んだので、呼び出す必要があるかもしれません

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

独自のアプリで画像をキャプチャする前に。私はこれを自分でテストしようとしているので、うまくいくことを願っています!

于 2009-06-25T16:54:41.080 に答える