PHP GetImageSize反转宽度/高度

时间:2016-03-17 19:09:58

标签: php image getimagesize

我在下面附上了这些细节: 宽度:3024像素 身高:4032px

getimagesize()函数返回相反的结果:

$size = GetimageSize("test.jpg");
echo "image width: " . $size[0] . ", height: " . $size[1];
  

图像宽度:4032,高度:3024

这怎么可能?

您可以尝试使用下面的图片。

*更新* 从帖子中删除图像并添加了一个链接到zip文件(包含图像),因为图像从堆栈溢出处理后工作正常。 Tinyupload ZIP

结果截图: enter image description here

2 个答案:

答案 0 :(得分:0)

您查看图像时可能会自动旋转图像。定位将在正确的方向上获得高度和宽度。从php documentation获取的此代码将确保您的图像正确旋转。链接中有许多其他示例可供选择。

<?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
?>

答案 1 :(得分:0)

exif方向标记不能完全信任,因为它实际上取决于程序或设备设置标记使用了正确的值。

本文更好地解释了exif方向标记以及为什么它变得一团糟。 http://www.daveperrett.com/articles/2012/07/28/exif-orientation-handling-is-a-ghetto/