private WebPictureBasic GetWebPictureBasic(string path) { WebPictureBasic pic = new WebPictureBasic(); pic.Id = PathToId(path); pic.Path.Add(path); pic.Categories.Add(GetCategoryFromPath(path)); // Image metadata BitmapSource img = BitmapFrame.Create(new Uri(path)); BitmapMetadata meta = (BitmapMetadata)img.Metadata; try { if (!String.IsNullOrWhiteSpace(meta.Title)) { pic.Title = meta.Title.Trim(); } pic.DateTaken = DateTime.Parse(meta.DateTaken); } catch (Exception ex) { Log.Error(String.Format("Error reading picture metadata for {0}", path), ex); } // Set title to file name if non-existant if (String.IsNullOrEmpty(pic.Title)) { pic.Title = Path.GetFileName(path); } return(pic); }
internal static WebPictureDetailed PictureDetailed(MediaItem item) { MediaItemAspect imageAspects = item.GetAspect(ImageAspect.Metadata); WebPictureBasic webPictureBasic = PictureBasic(item); WebPictureDetailed webPictureDetailed = new WebPictureDetailed { Type = webPictureBasic.Type, DateAdded = webPictureBasic.DateAdded, Id = item.MediaItemId.ToString(), Title = webPictureBasic.Title, DateTaken = webPictureBasic.DateTaken, Path = webPictureBasic.Path, Artwork = webPictureBasic.Artwork, Categories = webPictureBasic.Categories, Width = imageAspects.GetAttributeValue <int?>(ImageAspect.ATTR_WIDTH)?.ToString(), Height = imageAspects.GetAttributeValue <int?>(ImageAspect.ATTR_HEIGHT)?.ToString(), CameraModel = imageAspects.GetAttributeValue <string>(ImageAspect.ATTR_MODEL), CameraManufacturer = imageAspects.GetAttributeValue <string>(ImageAspect.ATTR_MAKE), PID = webPictureBasic.PID }; if (double.TryParse(webPictureDetailed.Width, out double width) && double.TryParse(webPictureDetailed.Height, out double height)) { webPictureDetailed.Mpixel = (width * height) / 1000000.0; } return(webPictureDetailed); }
private WebPictureBasic GetWebPictureBasic(string path) { WebPictureBasic pic = new WebPictureBasic(); pic.Id = PathToId(path); pic.Path.Add(path); pic.Categories.Add(GetCategoryFromPath(path)); // Image metadata BitmapSource img = BitmapFrame.Create(new Uri(path)); BitmapMetadata meta = (BitmapMetadata)img.Metadata; try { pic.Title = meta.Title.Trim(); pic.DateTaken = DateTime.Parse(meta.DateTaken); } catch (Exception ex) { data.Log.Error(String.Format("Error reading picture metadata for {0}", path), ex); } return(pic); }
internal static WebPictureBasic PictureBasic(MediaItem item) { MediaItemAspect imageAspects = item.GetAspect(ImageAspect.Metadata); WebPictureBasic webPictureBasic = new WebPictureBasic { Type = WebMediaType.Picture, DateAdded = (DateTime)item.GetAspect(ImporterAspect.Metadata).GetAttributeValue(ImporterAspect.ATTR_DATEADDED), Id = item.MediaItemId.ToString(), Title = (string)item.GetAspect(MediaAspect.Metadata).GetAttributeValue(MediaAspect.ATTR_TITLE), DateTaken = (DateTime)item.GetAspect(MediaAspect.Metadata)[MediaAspect.ATTR_RECORDINGTIME], Path = ResourceAccessUtils.GetPaths(item), Artwork = ResourceAccessUtils.GetWebArtwork(item), }; webPictureBasic.Categories = new[] { new WebCategory { Title = (webPictureBasic.DateTaken).ToString("yyyy"), Id = (webPictureBasic.DateTaken).ToString("yyyy") } }; return(webPictureBasic); }