24
24
*/
25
25
class Exiftool implements MapperInterface
26
26
{
27
- const APERTURE = 'Aperture ' ;
28
- const APPROXIMATEFOCUSDISTANCE = 'ApproximateFocusDistance ' ;
29
- const ARTIST = 'Artist ' ;
30
- const CAPTION = 'Caption ' ;
31
- const CAPTIONABSTRACT = 'Caption-Abstract ' ;
32
- const COLORSPACE = 'ColorSpace ' ;
33
- const COPYRIGHT = 'Copyright ' ;
34
- const CREATEDATE = 'CreateDate ' ;
35
- const CREDIT = 'Credit ' ;
36
- const EXPOSURETIME = 'ExposureTime ' ;
37
- const FILESIZE = 'FileSize ' ;
38
- const FOCALLENGTH = 'FocalLength ' ;
39
- const HEADLINE = 'Headline ' ;
40
- const IMAGEHEIGHT = 'ImageHeight ' ;
41
- const IMAGEWIDTH = 'ImageWidth ' ;
42
- const ISO = 'ISO ' ;
43
- const JOBTITLE = 'JobTitle ' ;
44
- const KEYWORDS = 'Keywords ' ;
45
- const MIMETYPE = 'MIMEType ' ;
46
- const MODEL = 'Model ' ;
47
- const ORIENTATION = 'Orientation ' ;
48
- const SOFTWARE = 'Software ' ;
49
- const SOURCE = 'Source ' ;
50
- const TITLE = 'Title ' ;
51
- const XRESOLUTION = 'XResolution ' ;
52
- const YRESOLUTION = 'YResolution ' ;
53
- const GPSLATITUDE = 'GPSLatitude ' ;
54
- const GPSLONGITUDE = 'GPSLongitude ' ;
27
+ const APERTURE = 'Composite: Aperture ' ;
28
+ const APPROXIMATEFOCUSDISTANCE = 'XMP: ApproximateFocusDistance ' ;
29
+ const ARTIST = 'EXIF: Artist ' ;
30
+ const CAPTION = 'XMP: Caption ' ;
31
+ const CAPTIONABSTRACT = 'IPTC: Caption-Abstract ' ;
32
+ const COLORSPACE = 'EXIF: ColorSpace ' ;
33
+ const COPYRIGHT = 'EXIF: Copyright ' ;
34
+ const CREATEDATE = 'EXIF: CreateDate ' ;
35
+ const CREDIT = 'IPTC: Credit ' ;
36
+ const EXPOSURETIME = 'EXIF: ExposureTime ' ;
37
+ const FILESIZE = 'File: FileSize ' ;
38
+ const FOCALLENGTH = 'EXIF: FocalLength ' ;
39
+ const HEADLINE = 'IPTC: Headline ' ;
40
+ const IMAGEHEIGHT = 'File: ImageHeight ' ;
41
+ const IMAGEWIDTH = 'File: ImageWidth ' ;
42
+ const ISO = 'EXIF: ISO ' ;
43
+ const JOBTITLE = 'IPTC:By-lineTitle ' ;
44
+ const KEYWORDS = 'IPTC: Keywords ' ;
45
+ const MIMETYPE = 'File: MIMEType ' ;
46
+ const MODEL = 'EXIF: Model ' ;
47
+ const ORIENTATION = 'EXIF: Orientation ' ;
48
+ const SOFTWARE = 'EXIF: Software ' ;
49
+ const SOURCE = 'IPTC: Source ' ;
50
+ const TITLE = 'IPTC:ObjectName ' ;
51
+ const XRESOLUTION = 'EXIF: XResolution ' ;
52
+ const YRESOLUTION = 'EXIF: YResolution ' ;
53
+ const GPSLATITUDE = 'EXIF: GPSLatitude ' ;
54
+ const GPSLONGITUDE = 'EXIF: GPSLongitude ' ;
55
55
56
56
/**
57
57
* Maps the ExifTool fields to the fields of
@@ -153,8 +153,10 @@ public function mapRawData(array $data)
153
153
}
154
154
break ;
155
155
case self ::FOCALLENGTH :
156
- $ focalLengthParts = explode (' ' , $ value );
157
- $ value = (int ) reset ($ focalLengthParts );
156
+ if (!$ this ->numeric || strpos ($ value , ' ' ) !== false ) {
157
+ $ focalLengthParts = explode (' ' , $ value );
158
+ $ value = reset ($ focalLengthParts );
159
+ }
158
160
break ;
159
161
case self ::GPSLATITUDE :
160
162
$ gpsData ['lat ' ] = $ this ->extractGPSCoordinates ($ value );
@@ -170,8 +172,8 @@ public function mapRawData(array $data)
170
172
171
173
// add GPS coordinates, if available
172
174
if (count ($ gpsData ) === 2 && $ gpsData ['lat ' ] !== false && $ gpsData ['lon ' ] !== false ) {
173
- $ latitudeRef = empty ($ data ['GPSLatitudeRef ' ][0 ]) ? 'N ' : $ data ['GPSLatitudeRef ' ][0 ];
174
- $ longitudeRef = empty ($ data ['GPSLongitudeRef ' ][0 ]) ? 'E ' : $ data ['GPSLongitudeRef ' ][0 ];
175
+ $ latitudeRef = empty ($ data ['EXIF: GPSLatitudeRef ' ][0 ]) ? 'N ' : $ data ['EXIF: GPSLatitudeRef ' ][0 ];
176
+ $ longitudeRef = empty ($ data ['EXIF: GPSLongitudeRef ' ][0 ]) ? 'E ' : $ data ['EXIF: GPSLongitudeRef ' ][0 ];
175
177
176
178
$ gpsLocation = sprintf (
177
179
'%s,%s ' ,
0 commit comments