我在下面附上了这些细节: 宽度:3024像素 身高:4032px
getimagesize()函数返回相反的结果:
$size = GetimageSize("test.jpg");
echo "image width: " . $size[0] . ", height: " . $size[1];
图像宽度:4032,高度:3024
这怎么可能?
您可以尝试使用下面的图片。
*更新* 从帖子中删除图像并添加了一个链接到zip文件(包含图像),因为图像从堆栈溢出处理后工作正常。 Tinyupload ZIP
答案 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/