Снимайте снимок в портретном режиме и загружайте его на сервер. Загруженное изображение отображается в неправильной ориентации - PullRequest
0 голосов
/ 26 сентября 2018

Если я сделаю снимок на своем iPhone в портретном режиме и отправлю это изображение с помощью alamofire на сервер -> изображение будет сохранено идеально.Если я пытаюсь использовать эту картинку в html, ориентация неправильная.Изображение поворачивается на -90 градусов.Я попытался сохранить изображение в формате jpg и png, но у меня есть одна и та же проблема.

Alamofire.upload(
        multipartFormData: { multipartFormData in
            multipartFormData.append(imageData, withName: "image", fileName: "image.png", mimeType: "image/png")
    },
        to: SERVER_URL,
        encodingCompletion: { encodingResult in
            switch encodingResult {.....

На стороне сервера:

<?php
.....
$response['error'] = "NULL";
$filename = uniqid() . ".png";
move_uploaded_file($_FILES['image']['tmp_name'], "image/" . $filename) ...... 
 ?>

Я думаю, что будет 2другое решение, но я не мог найти правильный путь.1) Мне нужно как-то изменить ориентацию на своем устройстве iPhone. 2) Мне нужно изменить ориентацию на стороне сервера перед загрузкой на сервер.

(Я не хочу принимать решение нана стороне клиента)

1 Ответ

0 голосов
/ 26 сентября 2018

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

Также вы можете изменить ориентацию изображения, используя код ниже:

let pngImage = #imageLiteral(resourceName: "yourImageFileName")
let image = UIImage(cgImage: pngImage.cgImage, scale: pngImage.scale,   orientation: UIImage.Orientation.up)
...