Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从android发送图像-在服务器上接收旋转的图片_Php_Android - Fatal编程技术网

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

Php 从android发送图像-在服务器上接收旋转的图片,php,android,Php,Android,我正在尝试编写一个android应用程序,它可以拍摄照片并将其保存到服务器。问题是,我拍摄的每张照片在保存到服务器上时都会旋转-90度。你知道如何在php中旋转图片,或者为什么它最终会被旋转吗 以下是我的php文件的外观: <?php $file_path = "photos/"; $img = $_REQUEST['base64']; $name=$_REQUEST['ImageName']; // Decode Image $binary=

我正在尝试编写一个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;
 ?> 

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


这应该是使用PHP读取exif数据的一个很好的起点:

也许它与图像方向有关

试试这个

 $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;
            }