我有一个iPhone应用程序将图片上传到我的服务器。我遇到的一个主要问题是旋转问题。
出于某种原因,如果我从iPhone上传图片,一些图片会自动旋转。旋转的那个是纵向模式的。我的脚本中没有旋转图像的代码。
服务器如何精确处理高图像?我应该修改我的php文件以检查它自动旋转后向前旋转吗?我应该在我的iPhone应用程序中编写一些可以检查的内容吗?
感谢任何帮助!
PS:如果您需要代码,请随时提问!
答案 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。