PhP在使用iOS图像进行方向校正后上传ImageJPEG

时间:2017-11-28 17:57:38

标签: php ios

我在这个网站上遇到了一些代码,以帮助修复iOS照片重新定位中的方向问题。

这是PhP

<?php
session_start();


$filename = $_FILES['file']['name'];
$filePath = $_FILES['file']['tmp_name'];
$exif = exif_read_data($_FILES['file']['tmp_name']);
if (!empty($exif['Orientation'])) {
    $imageResource = imagecreatefromjpeg('/uploads'); // provided that the             image is jpeg. Use relevant function otherwise
    switch ($exif['Orientation']) {
        case 3:
    $image = imagerotate($imageResource, 180, 0);
    break;

    case 6:
    $image = imagerotate($imageResource, -90, 0);
    break;

    case 8:
    $image = imagerotate($imageResource, 90, 0);
    break;

    default:
    $image = $imageResource;
} 
}

imagejpeg($image, $filename, 90);



?>

此代码似乎有效但我没有看到输出的图像,因为我无法将更改的图像移动到服务器。我需要做的是将图像移动到服务器上。

我甚至都不知道苹果手机做了这么多额外的恶事。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我发现了这个,可能是从图像上剥离了EXIF?

$filename = $_FILES['file']['name'];
$filePath = $_FILES['file']['tmp_name'];
$exif = exif_read_data($_FILES['file']['tmp_name']);
if (!empty($exif['Orientation'])) {
  $imageResource = imagecreatefromjpeg($filePath); // provided that the             
image is jpeg. Use relevant function otherwise
switch ($exif['Orientation']) {
    case 3:
$image = imagerotate($imageResource, 180, 0);
break;

case 6:
$image = imagerotate($imageResource, -90, 0);
break;

case 8:
$image = imagerotate($imageResource, 90, 0);
break;

default:
$image = $imageResource;
} 
}

我不是百分之百确定它是否是最好的做法,但如果它有效!