айфон, как определить ориентацию изображения при его съемке - PullRequest
3 голосов
/ 08 мая 2011

Есть ли способ определить ориентацию телефона при съемке изображения?

У меня есть UIImageView на UIView, и я использую UIImagePicker, чтобы сделать фотографию или выбрать один из списка камеры. Но если изображение было получено в ландшафтном режиме, я хочу обнаружить это и изменить размер изображения, чтобы оно не растягивалось и не выглядело глупо.

Кто-нибудь знает, возможно ли это?

Ответы [ 3 ]

8 голосов
/ 06 ноября 2011

Вы можете использовать myImage.imageOrientation, что даст вам UIImageOrientation,

Или, если по какой-то причине вы хотите получить информацию EXIF ​​непосредственно в методе "imagePickerController: didFinishPickingMediaWithInfo:".

путем доступа к информационному словарю [info objectForKey: @ "Orientation"] ;

Примечание: это не будет относиться к UIImageOrientation напрямую, корреляция следующая.

- (UIImageOrientation)orientationFromEXIF:(int)exif
{  
    UIImageOrientation newOrientation;  
    switch (exif)
    {  
    case 1:  
        newOrientation = UIImageOrientationUp;  
        break;  
    case 3:  
        newOrientation = UIImageOrientationDown;  
        break;  
    case 8:  
        newOrientation = UIImageOrientationLeft;  
        break;  
    case 6:  
        newOrientation = UIImageOrientationRight;  
        break;  
    case 2:  
        newOrientation = UIImageOrientationUpMirrored;  
        break;  
    case 4:  
        newOrientation = UIImageOrientationDownMirrored;  
        break;  
    case 5:  
        newOrientation = UIImageOrientationLeftMirrored;  
        break;  
    case 7:  
        newOrientation = UIImageOrientationRightMirrored;  
        break;  
    }  
    return newOrientation;  
}

Но вам лучше использовать .imageOrientation

2 голосов
/ 05 февраля 2016

Проверьте этот код в Swift -

class func DetectOrientation(img : UIImage) -> UIImageOrientation{
            var newOrientation = UIImageOrientation.Up
            switch (img.imageOrientation)
            {
            case .Up:
                newOrientation = UIImageOrientation.Up;
                break;
            case .Down:
                newOrientation = UIImageOrientation.Down;
                break;
            case .Left:
                newOrientation = UIImageOrientation.Left;
                break;
            case .Right:
                newOrientation = UIImageOrientation.Right;
                break;
            case .UpMirrored:
                newOrientation = UIImageOrientation.UpMirrored;
                break;
            case .DownMirrored:
                newOrientation = UIImageOrientation.DownMirrored;
                break;
            case .LeftMirrored:
                newOrientation = UIImageOrientation.LeftMirrored;
                break;
            case .RightMirrored:
                newOrientation = UIImageOrientation.RightMirrored;
                break;
            }
            return newOrientation;
        }
1 голос
/ 08 мая 2011

Проверьте @property (неатомный, только для чтения) UIImageOrientation imageOrientation в UIImage.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...