2015-07-25 6 views
1

Я пытаюсь написать приложение для Android, которое делает снимок и сохраняет его на сервере. Проблема в том, что каждое изображение, которое я беру, поворачивается с -90 градусов при сохранении на сервере. Любая идея, как я могу повернуть картинку в php или почему она поворачивается?Отправить изображение из android - получает повернутое изображение на сервере

Это как мой файл PHP выглядит следующим образом:

<?php 

    $file_path = "photos/"; 
    $img = $_REQUEST['base64']; 
    $name=$_REQUEST['ImageName']; 


    // Decode Image 
    $binary=base64_decode($img); 

$success = file_put_contents($file_path.$name, $binary); 

if($success === false) { 
    echo "Couldn't write file"; 
} else { 
    echo "Wrote $success bytes"; 
} 
echo $name; 
?> 

ответ

1

Может быть, это что-то делать с ориентацией изображения.

Попробуйте

$exif = exif_read_data($file_path.$name); 
      $ort = $exif['IFD0']['Orientation']; 
      switch($ort) 
      { 

       case 3: // 180 rotate left 
        $image->imagerotate($file_path.$name, 180, -1); 
        break; 


       case 6: // 90 rotate right 
        $image->imagerotate($file_path.$name, -90, -1); 
        break; 

       case 8: // 90 rotate left 
        $image->imagerotate($file_path.$name, 90, -1); 
        break; 
      } 
2

Это не проблема на стороне сервера, каждый смартфон может применить другую ориентацию изображений камеры. Когда вы получаете изображение, вам нужно получить доступ к его метаданным (данные exif si точное имя), чтобы проверить его вращение и другие свойства. Затем вы должны применить к изображению необходимые вам преобразования.

Это должно быть хорошим кузницы кадров для чтения EXIF ​​данных с PHP: http://php.net/manual/en/function.exif-read-data.php