private PhotoMetadata ReadMeta(string path) { using (FileStream stream = new FileStream(path, FileMode.Open)) { var reader = new PhotoMetadataReader(stream); return reader.ParseMetadata(); } }
public void UseExifMetadataReader4_metadata() { using (FileStream stream = new FileStream("./IO/Picture/p4_exif_header.jpg", FileMode.Open)) { var reader = new PhotoMetadataReader(stream); var meta = reader.ParseMetadata(); Assert.Equal<string>("NIKON CORPORATION", meta.Make); Assert.Equal<string>("NIKON D3300", meta.Model); } }
public void UseExifMetadataReader1() { using (FileStream stream = new FileStream("./IO/Picture/p1.jpg", FileMode.Open)) { var reader = new PhotoMetadataReader(stream); var meta = reader.ParseMetadata(); Assert.Equal<string>("NIKON CORPORATION", meta.Make); Assert.Equal<string>("NIKON D40", meta.Model); Assert.Equal<char>('N', meta.GPS.LatRef); Assert.Equal<char>('E', meta.GPS.LonRef); } }
public void UseExifMetadataReader2() { using (FileStream stream = new FileStream("./IO/Picture/p2.jpg", FileMode.Open)) { var reader = new PhotoMetadataReader(stream); var meta = reader.ParseMetadata(); Assert.Equal<string>("Apple", meta.Make); Assert.Equal<string>("iPhone SE", meta.Model); Assert.Equal<char>('N', meta.GPS.LatRef); Assert.Equal<char>('E', meta.GPS.LonRef); } }
private static async Task <PhotoInfo> ReadMeta(string path) { var result = new PhotoInfo(); using (FileStream stream = new FileStream(path, FileMode.Open)) { var reader = new PhotoMetadataReader(stream); var meta = reader.ParseMetadata(); if (meta != null && !string.IsNullOrWhiteSpace(meta.Model)) { meta.FilePath = stream.Name; //Console.WriteLine(string.Format("[PhotoHelper]###################### ReadMeta for file {0}, model: {1}. meta: {2}", meta.FilePath, meta.Model, JsonConvert.SerializeObject(meta))); meta.Model = meta.Model.Trim('\x00'); //Console.WriteLine(string.Format("[PhotoHelper]###################### ReadMeta for file {0}. meta: {1}", meta.FilePath, JsonConvert.SerializeObject(meta))); result.PhotoMetadata = meta; if (meta.HasLocation) { var leafNode = await Cache.GetLeafNode(meta.GPS.LatRef, meta.GPS.Lat, meta.GPS.LonRef, meta.GPS.Lon).ConfigureAwait(false); if (leafNode != null) { var cityAndCountryName = GetCityAndCountryName(leafNode); result.City = cityAndCountryName.Item1; result.Country = cityAndCountryName.Item2; result.Node = leafNode; } if (string.IsNullOrWhiteSpace(result.City)) { noGPSPhotos.Add(result); meta.HasLocation = false; } } else { noGPSPhotos.Add(result); } } else { unprocessedPhotos.Add(path); } } return(result); }