Определение ориентации для захвата камеры - PullRequest
2 голосов
/ 18 апреля 2011

Я уже некоторое время ищу решение этой проблемы и считаю, что по своей сути это невозможно.

Мне интересно, нашел ли кто-нибудь достойный взлом или обходной путь.

Моя проблема заключается в следующем:

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

После того, как теги размещены, пользователь загружает фотографии, и теги отправляются в клиентский сервис для разбора.

Если фотография сделана в альбомной ориентации, мне нужно определить, является ли она горизонтальной или горизонтальной.что я могу отобразить его в правильной ориентации, когда он попадает на холст, и перевернуть его в правильном направлении, если пользователь переходит в режим противоположного пейзажа.

Как я могу зафиксировать ориентацию, что фотографиябыл принят в?

Ответы [ 2 ]

2 голосов
/ 18 апреля 2011

Просто посмотрите на высоту и ширину event.media, чтобы хотя бы определить портрет или пейзаж.Это не поможет вам в каком направлении перевернуть, хотя я не уверен, почему вам нужно выяснить это из захвата.Изображение сохраняется как альбомная фотография в правильной естественной ориентации, так что вы можете просто повернуть его в текущую ориентацию телефона

Titanium.Media.showCamera({
    success: function(event) { 
        var isLandscape = event.media.width > event.media.height;
    }
}
1 голос
/ 18 апреля 2011
function getOrientation(o) {
    switch (o){
        case Titanium.UI.PORTRAIT:
            return 'portrait';
        case Titanium.UI.UPSIDE_PORTRAIT:
            return 'upside portrait';
        case Titanium.UI.LANDSCAPE_LEFT:
            return 'landscape left';
        case Titanium.UI.LANDSCAPE_RIGHT:
            return 'landscape right';
        case Titanium.UI.FACE_UP:
            return 'face up';
        case Titanium.UI.FACE_DOWN:
            return 'face down';
        case Titanium.UI.UNKNOWN:
            return 'unknown';
        }
    }
}

Ti.Gesture.addEventListener('orientationchange',function(e){
    Ti.API.info('Current Orientation: ' + getOrientation(Titanium.Gesture.orientation));
    var orientation = getOrientation(e.orientation);
    Titanium.API.info(
        "orientation changed = "+orientation+", is     portrait?"+e.source.isPortrait()+", orientation = "+Ti.Gesture.orientation + "is landscape?"+e.source.isLandscape()
    );
});

немного изменен по сравнению с KS , но это должно сработать.

это должно сделать то, что не

Titanium.Media.showCamera({
    success:function(event) {
    var orientationWhilePictureTaken = Ti.Gesture.orientation;
        // all other camera code...
    }
});
...