comparison mgtool.php @ 311:8fd5c850f921

Minor cleanup to XMP/EXIF fetching.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 06 Apr 2020 17:23:02 +0300
parents b1fc8a908eac
children 326935332784
comparison
equal deleted inserted replaced
310:b1fc8a908eac 311:8fd5c850f921
249 249
250 // 250 //
251 // Read XMP data block from given file 251 // Read XMP data block from given file
252 // .. it's a horrible hack. 252 // .. it's a horrible hack.
253 // 253 //
254 function mgReadXMPData($filename, $xmpBlockSize = 1024*64) 254 function mgReadXMPFromRAWData($filename, $xmpBlockSize = 1024*64)
255 { 255 {
256 if (($fh = @fopen($filename, 'rb')) === FALSE) 256 if (($fh = @fopen($filename, 'rb')) === FALSE)
257 return FALSE; 257 return FALSE;
258 258
259 $xmpStartTag = "<x:xmpmeta"; 259 $xmpStartTag = "<x:xmpmeta";
964 964
965 if (file_exists($capFilename) && 965 if (file_exists($capFilename) &&
966 mgNeedUpdate($galEntry, "mtime", filemtime($capFilename))) 966 mgNeedUpdate($galEntry, "mtime", filemtime($capFilename)))
967 $updFlags |= GUPD_CAPTION; 967 $updFlags |= GUPD_CAPTION;
968 968
969 // Check for XMP info 969 // Check for EXIF and XMP info
970 // TODO XXX: Perhaps support XMP sidecar files
971 if (($updFlags & GUPD_EXIF_INFO) &&
972 ($xmpStr = mgReadXMPData($efilename)) !== FALSE &&
973 ($xmp = mgParseXMPData($xmpStr)) !== FALSE)
974 {
975 foreach ($galExifConversions as $conv)
976 mgCopyEntryData($edata, $xmp, $conv[GEC_TYPE], $conv[GEC_NAME], $conv[GEC_FIELDS]);
977 }
978
979 // Check for EXIF info
980 if ($updFlags & GUPD_EXIF_INFO) 970 if ($updFlags & GUPD_EXIF_INFO)
981 { 971 {
972 // TODO XXX: Perhaps support XMP sidecar files
973 if (($xmpStr = mgReadXMPFromRAWData($efilename)) !== FALSE &&
974 ($xmp = mgParseXMPData($xmpStr)) !== FALSE)
975 {
976 foreach ($galExifConversions as $conv)
977 mgCopyEntryData($edata, $xmp, $conv[GEC_TYPE], $conv[GEC_NAME], $conv[GEC_FIELDS]);
978 }
979
982 if (($exif = @exif_read_data($efilename)) !== FALSE) 980 if (($exif = @exif_read_data($efilename)) !== FALSE)
983 { 981 {
984 echo "%"; 982 echo "%";
985 foreach ($galExifConversions as $conv) 983 foreach ($galExifConversions as $conv)
986 mgCopyEntryData($edata, $exif, $conv[GEC_TYPE], $conv[GEC_NAME], $conv[GEC_FIELDS]); 984 mgCopyEntryData($edata, $exif, $conv[GEC_TYPE], $conv[GEC_NAME], $conv[GEC_FIELDS]);