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);
        }
Beispiel #3
0
        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);
        }