图像自动旋转

时间:2011-03-31 06:04:29

标签: php iphone xcode image-processing

我有一个iPhone应用程序将图片上传到我的服务器。我遇到的一个主要问题是旋转问题。

出于某种原因,如果我从iPhone上传图片,一些图片会自动旋转。旋转的那个是纵向模式的。我的脚本中没有旋转图像的代码。

服务器如何精确处理高图像?我应该修改我的php文件以检查它自动旋转后向前旋转吗?我应该在我的iPhone应用程序中编写一些可以检查的内容吗?

感谢任何帮助!

PS:如果您需要代码,请随时提问!

2 个答案:

答案 0 :(得分:6)

有些图片(jpg)有exif数据,可以显示拍摄照片时相机的位置。

查看http://www.php.net/manual/en/function.exif-read-data.php#76964

您可以像这样旋转图片服务器端

答案 1 :(得分:0)

拍照时,手机会将所有旋转元数据保存在EXIF标头中。当您将图像上传到服务器时,该元数据仍位于其中,但是将图像应用于图像以旋转图像(如果需要)是您的工作。在PHP中,您可以使用名为exif_read_data的函数:

function correctImageOrientation($filename)
{
    $exif = exif_read_data($filename);
    if ($exif && isset($exif['Orientation'])) {
        $orientation = $exif['Orientation'];
        if ($orientation != 1) {
            $img = imagecreatefromjpeg($filename);
            $deg = 0;
            switch ($orientation) {
                case 3:
                    $deg = 180;
                    break;
                case 6:
                    $deg = 270;
                    break;
                case 8:
                    $deg = 90;
                    break;
            }
            if ($deg) {
                $img = imagerotate($img, $deg, 0);
            }
            imagejpeg($img, $filename, 95);
        }
    }
}

要使用它,只需在保存文件后调用该函数即可。有关更多信息和其他PHP解决方案,请参见the original source