2016-04-09 5 views
0

Я использую F # для некоторых действий, связанных с обработкой изображений.Изображение поворачивается при сохранении в виде растрового изображения в F #

Если я получить изображения с помощью

let imagesForRecognition = 
    Directory.GetFiles("/RImages/","*.jpg") 
    |> Array.map(fun x -> new Bitmap(x)) 

А потом сделать это.

imagesForRecognition.[0].Save("A.jpg") 

Изображение повернуто на 90 градусов, если мое изображение имеет размер 1080x1920. Я использовал 528х960, и они не вращались. Я нахожу это поведение странным.

Я использую Xamarin студии Mac OS X

+2

Возможно 'Bitmap' не сохраняет Exif данные. – CaringDev

+0

Ваш вопрос решен? –

ответ

0

У меня была такая же проблема в Xamarin.Forms. Однако, как я использую XLabs, когда мое приложение делает снимок У меня есть доступ к объекту MediaFile. Этот класс имеет одно интересное свойство Orientation. Я могу проверить это свойство и выполнить некоторый код, чтобы получить изображение в нужном формате, как я хочу.

let prepare (orientation:ExifOrientation) img = 
    match orientation with 
    | ExifOrientation.BottomRight -> rotate 180 img 
    | ExifOrientation.TopLeft -> img 
    | _ -> img 

Это то, что подходит для моих потребностей, потому что я никогда не видел, что смартфоны, которые я имел, использовали другие ExifOrientation чем BottomRight или TopLeft

Смежные вопросы