PHP read_exif_data 和调整方向
提供的代码尝试根据 EXIF 数据调整上传的 JPEG 图像的方向。但是,用户报告了来自 iPhone 和 Android 设备的图像问题。
代码分析
使用 exif_read_data 函数提取 EXIF 数据。 switch 语句检查特定方向并尝试相应地旋转图像。但是,提供的 EXIF 数据似乎不包含有效的方向值。
更新的代码
要解决此问题,我们可以使用更强大的方法来提取方向数据。这是代码的更新版本:
<code class="php">$exif = exif_read_data($upload_path . $newfilename, 'ANY_TAG'); $ort = $exif['IFD0']['Orientation'] ?? 1;</code>
EXIF 方向值
方向值的范围可以从 1 到 8,不同的值表示不同的旋转或翻转.
调整图像方向
有了正确的方向值,我们就可以根据需要调整图像:
<code class="php">switch ($ort) { case 3: // 180 rotate left $image->imagerotate(-180, -1); break; case 6: // 90 rotate right $image->imagerotate(-90, -1); break; case 8: // 90 rotate left $image->imagerotate(90, -1); break; }</code>
其他注意事项
如果 EXIF 数据仍然不包含方向值或调整似乎不起作用,您可能需要查阅图像库的特定文档或考虑使用确定正确方向的替代方法。
以上是为什么不使用 PHP 的'exif_read_data”函数纠正 iPhone 和 Android 图像方向?的详细内容。更多信息请关注PHP中文网其他相关文章!