Php imagecreatefromjpeg未旋转图像

Php imagecreatefromjpeg未旋转图像,php,php-gd,Php,Php Gd,我在imagecreatefromjpeg和图像旋转方面遇到问题 更具体地说: 图像#1由imagecreatefromjpeg正确旋转(尊重exif标记),但不在Picasa或Win10照片查看器中 我的代码中没有旋转,当我说“通过imagecreatefromjpeg正确旋转”时,我的意思是,文学。简单地做 $img = imagecreatefromjpeg($filename); 图像从文件加载并正确旋转。我正在用GD版本2.1.1-dev运行PHP5.5.31-2+deb.sury.

我在imagecreatefromjpeg和图像旋转方面遇到问题

更具体地说:

图像#1由imagecreatefromjpeg正确旋转(尊重exif标记),但不在Picasa或Win10照片查看器中

我的代码中没有旋转,当我说“通过imagecreatefromjpeg正确旋转”时,我的意思是,文学。简单地做

$img = imagecreatefromjpeg($filename);
图像从文件加载并正确旋转。我正在用GD版本2.1.1-dev运行PHP5.5.31-2+deb.sury.org~trusty+1

imagecreatefromjpeg未正确旋转图像#2(不支持exif标记),但在Picasa和Win10 Photo viewer中正确旋转


此外,使用出色的Jeffrey的Exif Viewer结果与我从imagecreatefromjpeg中看到的结果一致。

有些反直觉,实际上是图像2正确显示,而图像1被破坏

两个图像的EXIF方向值均为6,表示图像逆时针旋转90度。(有关更多详细信息,请参阅关于EXIF方向。)

imagecreatefromjpeg
不会以任何方式变换图像。它正在加载图像“原始”。它看起来像是旋转的,因为默认查看器(Windows缩略图/Windows照片查看器?)会根据EXIF值自动执行此操作。Jeffrey的Exif Viewer也会显示原始图像,这就是为什么您的结果是一致的

根据该值,要正确显示两个图像,应执行90度顺时针旋转变换:

$img = imagerotate($img, -90, 0);
这将产生以下结果(此处缩小的图像):

图#1:

图2:


这正是我在Win8照片查看器中看到的两幅图像。因此,由于图像#1的方向值错误,因此无法通过代码正确旋转它。

能否显示一些旋转代码?我应该更清楚地回答我的问题,没有旋转代码。我会更新的。那么,你怎么知道它是否旋转了呢
getimagesize
为两幅图像返回正确的值。我有眼睛,可以看到它没有旋转。正如我所说,我从imagecreatefromjpeg和Jeffrey的Exif查看器中得到了完全相同的行为。对不起,可能是我的眼睛骗了我,但是第二幅图像的Exif标记读取
“ExifImageWidth”=>3264,“ExifImageLength”=>2448
,即横向布局。这正是我在Jeffrey的Exif查看器页面中看到的。这显然是错误的。你的观点到底是什么?你的图像有错误的方向值。无法根据它的方向值正确显示它。第一个图像被愚蠢的编辑器损坏。谢谢你睁开我的眼睛,不客气。EXIF定位是一个真正需要处理和纠正的难题。为了清晰起见,我编辑了我的帖子。