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