是之前遇到的一个奇怪的问题,就是使用 getimagesize 去获取一个图片的长和宽,但是得到的信息,长和宽反了。

应该是图片自身的原因,找到如下代码,解决了问题
http://stackoverflow.com/questions/36069618/php-getimagesize-reverses-width-height

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$image = imagecreatefromstring(file_get_contents($file));
$exif = exif_read_data($file);
if(!empty($exif['Orientation'])) {
echo $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;
}
}
imagejpeg($image, $file);
print_r(getimagesize($file));

大概是图片的元信息除了问题,EXIF (exchangeable image file format) ,没再细看了,很复杂的样子,先记录一下。