我正在开发一个PHP网站,当我以纵向模式上传从ipad拍摄的照片时,它会在网站上以横向显示,但是当我从计算机上传相同的照片时(不对其进行任何更改)照片)它在横向模式下正确显示。所有风景照片都以横向方式显示。
我试图找到解决此问题的方法,并阅读有关从EXIF数据获取方向的信息,但“方向”标记实际上始终相同(如果我没记错的话,则为1)是否已拍摄照片在风景或肖像。
我尝试将肖像照片从ipad上传到flickr,并且在纵向模式下正确显示,所以我错过了什么?
感谢。
答案 0 :(得分:2)
取自http://www.php.net/manual/en/function.exif-read-data.php#110894 图片来源:gds dot com的chadsmith729。
我自己没有测试过这个解决方案..
<?php
$image = imagecreatefromstring(file_get_contents($_FILES['image_upload']['tmp_name']));
$exif = exif_read_data($_FILES['image_upload']['tmp_name']);
if(!empty($exif['Orientation'])) {
switch($exif['Orientation']) {
case 8:
$image = imagerotate($image,90,0);
break;
case 3:
$image = imagerotate($image,180,0);
break;
case 6:
$image = imagerotate($image,-90,0);
break;
}
}
// $image now contains a resource with the image oriented correctly
?>
这适用于所有Apple产品(iPod,iPhone和iPad)