This commit is contained in:
2023-01-03 18:59:02 -07:00
parent 92288c9381
commit 9b9573093f
6 changed files with 66 additions and 27 deletions

View File

@ -8,6 +8,11 @@ public interface IMetadata
static DateTime GetMinimumDateTime(DateTime?[] dateTimes, int year, IReadOnlyList<MetadataExtractor.Directory> directories) =>
Metadata.GetMinimumDateTime(dateTimes, year, directories);
string? TestStatic_GetModel(IReadOnlyList<MetadataExtractor.Directory> directories) =>
GetModel(directories);
static string? GetModel(IReadOnlyList<MetadataExtractor.Directory> directories) =>
Metadata.GetModel(directories);
string? TestStatic_GetFaceEncoding(IReadOnlyList<MetadataExtractor.Directory> directories) =>
GetFaceEncoding(directories);
static string? GetFaceEncoding(IReadOnlyList<MetadataExtractor.Directory> directories) =>

View File

@ -58,14 +58,14 @@ internal class Metadata
DateTime result;
DateTime dateTime;
List<DateTime> results = (from l in dateTimes where l is not null select l.Value).ToList();
ExifSubIfdDirectory? exifSubIfdDirectory = directories.OfType<ExifSubIfdDirectory>().FirstOrDefault();
if (exifSubIfdDirectory is not null)
ExifDirectoryBase? exifDirectoryBase = directories.OfType<ExifDirectoryBase>().FirstOrDefault();
if (exifDirectoryBase is not null)
{
if (exifSubIfdDirectory.TryGetDateTime(ExifDirectoryBase.TagDateTime, out dateTime))
if (exifDirectoryBase.TryGetDateTime(ExifDirectoryBase.TagDateTime, out dateTime))
results.Add(dateTime);
if (exifSubIfdDirectory.TryGetDateTime(ExifDirectoryBase.TagDateTimeDigitized, out dateTime))
if (exifDirectoryBase.TryGetDateTime(ExifDirectoryBase.TagDateTimeDigitized, out dateTime))
results.Add(dateTime);
if (exifSubIfdDirectory.TryGetDateTime(ExifDirectoryBase.TagDateTimeOriginal, out dateTime))
if (exifDirectoryBase.TryGetDateTime(ExifDirectoryBase.TagDateTimeOriginal, out dateTime))
results.Add(dateTime);
}
AviDirectory? aviDirectory = directories.OfType<AviDirectory>().FirstOrDefault();
@ -94,6 +94,17 @@ internal class Metadata
return result;
}
internal static string? GetModel(IReadOnlyList<MetadataExtractor.Directory> directories)
{
string? result;
ExifDirectoryBase? exifDirectoryBase = directories.OfType<ExifDirectoryBase>().FirstOrDefault();
if (exifDirectoryBase is null)
result = null;
else
result = exifDirectoryBase.GetString(ExifDirectoryBase.TagModel);
return result;
}
internal static int GetOrientation(List<KeyValuePair<string, string>> metadataCollection)
{
int result;