# PHP根据图片Orientation旋转图片

- URL: https://wuming.si/blog/591/
- Author: Aaron
- Published: 2014-08-06
- Language: zh-Hans
- Categories: Technology
- Originally published at: https://blog.wo.ai/archives/591

最近发现发送到微信公众平台的图片被旋转了90度，导致后续操作出错。后来仔细研究，发现用iphone前置摄像头拍出来的照片会自动镜像，而且会右旋90度，之前TX服务器会处理这种情况，貌似最近不干了，害客户抱怨我这里的问题。

然后开始研究服务器传回来照片的格式，发现exif里面Orientation的值为6，正好是右旋了90度，正好可以根据这个来自动调整图片。

首先读取exif值

$exif = exif_read_data($src, 0, true);

if($exif[‘IFD0’][‘Orientation’]==6){  
flip($src,$src,-90);  
}

其实还有其他方向，也可以根据这个来旋转，我这里只需要这么多。

另外附上flip方法

function flip($filename,$src,$degrees=90)  
{  
//读取图片  
$data = @getimagesize($filename);  
if($data==false)return false;  
//读取旧图片  
switch ($data[2]) {  
case 1:  
$src_f = imagecreatefromgif($filename);break;  
case 2:  
$src_f = imagecreatefromjpeg($filename);break;  
case 3:  
$src_f = imagecreatefrompng($filename);break;  
}  
if($src_f==””)return false;  
$rotate = @imagerotate($src_f, $degrees,0);  
if(!imagejpeg($rotate,$src,100))return false;  
@imagedestroy($rotate);  
return true;  
}

万一你机器上面没有exif模块，参照我前一篇博文。
