From 128d1f7aa8a11e0394913a10daef56cd4be450b1 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Tue, 13 Mar 2018 22:47:11 -0700 Subject: somewhere along the line the output of exif_read_data() changed and it no longer provides populated sections. Adjust for the new format and allow for the old because I cannot find documentation of this change anywhere. This affects photo rotation and the photo map feature. --- include/photo/photo_driver.php | 4 ++-- include/photos.php | 15 +++++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/include/photo/photo_driver.php b/include/photo/photo_driver.php index 6af753195..00284a288 100644 --- a/include/photo/photo_driver.php +++ b/include/photo/photo_driver.php @@ -289,12 +289,12 @@ abstract class photo_driver { return false; } - $ort = $exif['IFD0']['Orientation']; + $ort = ((array_key_exists('IFD0',$exif)) ? $exif['IFD0']['Orientation'] : $exif['Orientation']); if(! $ort) { return false; } - + switch($ort) { case 1: // nothing break; diff --git a/include/photos.php b/include/photos.php index b1391f284..321f7159c 100644 --- a/include/photos.php +++ b/include/photos.php @@ -333,10 +333,17 @@ function photo_upload($channel, $observer, $args) { $lat = $lon = null; - if($exif && $exif['GPS']) { - if(feature_enabled($channel_id,'photo_location')) { - $lat = getGps($exif['GPS']['GPSLatitude'], $exif['GPS']['GPSLatitudeRef']); - $lon = getGps($exif['GPS']['GPSLongitude'], $exif['GPS']['GPSLongitudeRef']); + if($exif && feature_enabled($channel_id,'photo_location')) { + $gps = null; + if(array_key_exists('GPS',$exif)) { + $gps = $exif['GPS']; + } + elseif(array_key_exists('GPSLatitude',$exif)) { + $gps = $exif; + } + if($gps) { + $lat = getGps($gps['GPSLatitude'], $gps['GPSLatitudeRef']); + $lon = getGps($gps['GPSLongitude'], $gps['GPSLongitudeRef']); } } -- cgit v1.2.3