从android发送图像 - 在服务器上接收旋转的图片

时间:2015-07-25 09:39:46

标签: php android

我正在尝试编写一个Android应用程序拍摄照片并将其保存到服务器。问题是当我保存在服务器上时,我拍摄的每张照片都旋转了-90度。知道如何在php中旋转图片或为什么它最终被旋转?

这就是我的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;
 ?> 

2 个答案:

答案 0 :(得分:2)

这不是服务器端问题,每个智能手机都可以对相机图像应用不同的方向。 当您收到图像时,您必须访问其元数据(exif data si确切名称)以验证其旋转和其他属性。然后你应该在图片上应用你需要的转换。

这应该是用PHP读取exif数据的一个很好的起点:http://php.net/manual/en/function.exif-read-data.php

答案 1 :(得分: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;
            }