Mercurial > hg > mgallery
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]); |