我用PHP开发了一个网站,其中显示了我多年来拍摄的成千上万张照片。到目前为止,我的方向定位没有问题-横向和纵向图片都可以正确显示。
我最近开始编辑一些照片,它改变了它们的某些方向。现在,我已经修改了代码以处理EXIF的“方向”数据(使用Wes在Stack Overflow上创建的功能“ correctImageOrientation”,非常感谢Wes!)来旋转照片,效果很好。
但是,我编辑过的某些照片现在没有EXIF方向数据,因此我无法使用它来旋转照片,但是File Explorer会以某种方式知道正确的方向并正确显示照片。 因此,我的问题是文件资源管理器从哪里获取照片方向以及如何从PHP访问照片?
答案 0 :(得分:1)
还无法发表评论,因此将其发布为答案。
Exif数据仅是特定设备使用的元数据。否则可以将其剥离。您可以探索this workaround from the comment section in php's manual:
$orientation = 1;
if (function_exists('exif_read_data')) {
$exif = exif_read_data($filename);
if (isset($exif['Orientation'])) $orientation = $exif['Orientation'];
} else if (preg_match('@\x12\x01\x03\x00\x01\x00\x00\x00(.)\x00\x00\x00@', file_get_contents($filename), $matches)) {
$orientation = ord($matches[1]);
}