2015-04-01 3 views
0

Я реализую функцию фотосъемки, и у меня возникает следующая проблема.Как определить текущую ориентацию для вращения UIImage?

После взятия фотографии, я должен обрезать эскиз оригинального изображения, чтобы сделать значок аватара. Но это не хорошо, если пользователь берет фотографию в пейзаже.

Шаг:

  1. Включите камеру.
  2. Поверните iPhone вправо (чтобы камера находилась в ландшафтном режиме).
  3. Сфотографировать.
  4. Я получаю UIImage с плохой ориентацией. Поэтому миниатюра не очень хорошая.

Как я могу определить ориентацию вращения UIImage?

ответ

1

UIImage имеет size Недвижимость. Вы можете использовать это, чтобы найти height и widthimage.

Поэтому, если height>width тогда image в портрете еще ландшафтном

+0

Спасибо за помощь, но, как я знаю, что это правильно пейзаж или левый пейзаж? –

+0

Вы выбираете изображение из UIImagePickerController? –

+0

Нет, я использую внешнюю камеру lib. https://github.com/Aevit/SCCaptureCamera/tree/master/SCCaptureCameraDemo/SCCaptureCamera –

1

Try Ниже кода

if (image.size.width > image.size.height) // Landscape 
    { 

    } 
else // Portrait 
    { 

    } 
0

Используйте это:

#pragma mark - Image Picker Controller delegate methods 

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

    UIImage *chosenImage = info[UIImagePickerControllerEditedImage]; 
    self.imageView.image = chosenImage; 

    switch (chosenImage.imageOrientation) { 
     case UIImageOrientationUp: //Left 
      break; 
     case UIImageOrientationDown: //Right 
      break; 
     case UIImageOrientationLeft: //Down 
      break; 
     case UIImageOrientationRight: //Up 
      break; 
     default: 
      break; 
    } 

    [picker dismissViewControllerAnimated:YES completion:NULL]; 
} 
+0

Спасибо, что помогли, брат! Но я использую внешнюю библиотеку камеры: https://github.com/Aevit/SCCaptureCamera/tree/master/SCCaptureCameraDemo/SCCaptureCamera Как я могу определить режим, когда пользователь поворачивается (слева, справа) на iPhone и снимает изображение? –

1

Используйте этот код, чтобы получить ориентацию устройство. По ориентации устройства вы можете установить ориентацию изображения

[[UIDevice currentDevice] orientation] 
Смежные вопросы