图片自动旋转

5
我有一个iPhone应用程序,可以将照片上传到我的服务器。我遇到的一个主要问题是旋转问题。
由于某种原因,如果我从iPhone上传照片,一些照片会自动旋转。那些被旋转的照片都是竖直模式下的。我在脚本中没有任何旋转图像的代码。
服务器如何处理高度较大的图像?我应该修改我的php文件,在它自动旋转后检查并进行旋转吗?或者我应该在我的iPhone应用程序中编写一些代码来检查这个问题?
感谢您的任何帮助!
PS:如果需要代码,请随时询问!
3个回答

6

谢谢回复!我需要重新构建允许EXIF的Apache。如果它起作用,我会再联系你。 - iosfreak
2
刚刚安装完,从图像打印数组后,ORIENTATION 不在 exif 数组中。有什么想法? - iosfreak
EXIF标签包含什么内容?您可以使用许多不同的程序查看EXIF标签,而不仅仅是使用PHP。 - Quamis

0

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解决方案,请查看原始来源


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接