Ejemplo n.º 1
0
        private Task <bool> AddThumbnail(ImageSavedEventArgs msg)
        {
            return(Task <bool> .Run(async() => {
                var factor = 100 / msg.Image.Width;

                var scaledBitmap = CreateResizedImage(msg.Image, (int)(msg.Image.Width * factor), (int)(msg.Image.Height * factor), 0);
                scaledBitmap.Freeze();

                await _dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() => {
                    var thumbnail = new Thumbnail()
                    {
                        ThumbnailImage = scaledBitmap,
                        ImagePath = msg.PathToImage,
                        FileType = msg.FileType,
                        Duration = msg.Duration,
                        Mean = msg.Mean,
                        HFR = msg.HFR,
                        Filter = msg.Filter,
                        IsBayered = msg.IsBayered
                    };
                    Thumbnails.Add(thumbnail);
                    SelectedThumbnail = thumbnail;
                }));
                return true;
            }));
        }
Ejemplo n.º 2
0
 private void buildLocalThumbnailModels()
 {
     foreach (var thumb in Service.Library.Thumbnails)
     {
         if (thumb.Image.UriSource != new Uri("ms-appx:///Vap-logo-placeholder.jpg"))
         {
             Thumbnails.Add(thumb.Image);
         }
     }
 }
        private async Task Refresh()
        {
            Processing = true;
            FolderName = null;

            RefreshPhotosCommand.RaiseCanExecuteChanged();

            Thumbnails.Clear();

            var filters  = FilterFactory.CreateStreamFilters();
            var maxItems = (uint)_highlightStrategy.BatchSize * 5;

            if (SessionModel.Instance.Folder != null)
            {
                FolderName = SessionModel.Instance.Folder.DisplayName;

                var models = await GetPhotosFromFolderAsync(SessionModel.Instance.Folder, maxItems);

                for (var i = 0; i < models.Count; i++)
                {
                    var k         = i % (_highlightStrategy.BatchSize);
                    var highlight = _highlightStrategy.HighlightedIndexes.Contains(k);

                    Thumbnails.Add(new ThumbnailViewModel(models[i], TakeRandomFilter(filters), highlight));
                }
            }
            else
            {
                var models = await GetPhotosFromFolderAsync(Windows.Storage.KnownFolders.CameraRoll, maxItems);

                FolderName = Windows.Storage.KnownFolders.CameraRoll.DisplayName;

#if !WINDOWS_PHONE_APP
                if (models.Count == 0)
                {
                    models = await GetPhotosFromFolderAsync(Windows.Storage.KnownFolders.PicturesLibrary, maxItems);

                    FolderName = Windows.Storage.KnownFolders.PicturesLibrary.DisplayName;
                }
#endif

                for (var i = 0; i < models.Count; i++)
                {
                    var k         = i % (_highlightStrategy.BatchSize);
                    var highlight = _highlightStrategy.HighlightedIndexes.Contains(k);

                    Thumbnails.Add(new ThumbnailViewModel(models[i], TakeRandomFilter(filters), highlight));
                }
            }

            Processing = false;

            RefreshPhotosCommand.RaiseCanExecuteChanged();
        }
Ejemplo n.º 4
0
 private void ShowCluster(int clusterId)
 {
     if (bitmapReader != null && clusters != null)
     {
         Thumbnails.Clear();
         foreach (int descriptorId in clusters[clusterId])
         {
             // TODO verbose (videoID, shotID...)
             Bitmap bitmap = bitmapReader.ReadFrame(descriptorId);
             Thumbnails.Add(new Thumbnail(descriptorId.ToString(), BitmapToImageSource(bitmap)));
         }
     }
 }
 private void ShowDisplay(int displayId)
 {
     if (bitmapReader != null && log != null)
     {
         Thumbnails.Clear();
         int   selectedItemId = log[displayId].Item1;
         int[] displayedItems = log[displayId].Item2;
         foreach (int displayedId in displayedItems)
         {
             // TODO verbose (videoID, shotID...)
             Bitmap bitmap = bitmapReader.ReadFrame(displayedId);
             if (selectedItemId == displayedId)
             {
                 MarkSelectedItem(bitmap);
             }
             Thumbnails.Add(new Thumbnail(displayedId.ToString(), BitmapToImageSource(bitmap)));
         }
     }
 }
Ejemplo n.º 6
0
 public void SetPhotos()
 {
     try {
         string dir = OutputDir + "\\Thumbnails";
         if (!Directory.Exists(dir))
         {
             return;
         }
         DirectoryInfo directoryInfo = new DirectoryInfo(dir);
         string[]      extensions    = { ".jpg", ".png", ".gif", ".bmp" };
         // run through "year" directories
         foreach (DirectoryInfo yearDir in directoryInfo.GetDirectories())
         {
             // A thumbnalis directory
             if (!Path.GetDirectoryName(yearDir.FullName).EndsWith("Thumbnails"))
             {
                 continue;
             }
             // run through "month"directories
             foreach (DirectoryInfo monthDir in yearDir.GetDirectories())
             {
                 // run through thumbnails files (pictures)
                 foreach (FileInfo fileInfo in monthDir.GetFiles())
                 {
                     // has proper extensions
                     if (extensions.Contains(fileInfo.Extension.ToLower()))
                     {
                         Thumbnail pic = this.Thumbnails.Find(x => (x.ThumbnailPath == fileInfo.FullName));
                         if (pic == null)
                         {
                             Thumbnail newPic = new Thumbnail(fileInfo.FullName);
                             Thumbnails.Add(newPic);
                         }
                     }
                 }
             }
         }
     }
     catch (Exception e) {
         Console.WriteLine(e.Message);
     }
 }
Ejemplo n.º 7
0
 public override void Initialize()
 {
     Thumbnails = new Thumbnails();
     Thumbnails.Add(new Thumbnail { Width = 200, Height = 100, Name = "SmallPreview" });
     Thumbnails.Add(new Thumbnail { Width = 400, Height = 300, Name = "BigPreview" });
 }
Ejemplo n.º 8
0
        private object ParseXml(string type, string XmlString, Func <string, object> customParser)
        {
            var imageList = new Thumbnails();
            var xDoc      = System.Xml.Linq.XDocument.Parse(XmlString);

            if (xDoc.Root.Name.ToString() == "error")
            {
                var str = "API error:\n" + xDoc.Descendants("error")
                          .Select(el => el.Element("error_msg").Value)
                          .ToList <String>()[0];
                Debug.WriteLine(str);
                return(null);
            }

            if (customParser != null)
            {
                return(customParser(XmlString));
            }

            switch (type)
            {
            case ("photos.getAlbums"):
                var albums = xDoc.Descendants("album").Select(a => new Thumbnail
                {
                    Name    = a.Element("aid").Value,
                    Title   = a.Element("title").Value,
                    Image   = ImageDataFromUri(a.Element("thumb_src").Value),
                    Checked = false
                });
                imageList.Clear();
                foreach (var album in albums)
                {
                    imageList.Add(album);
                }
                return(imageList);

            case ("photos.get"):
                Func <System.Xml.Linq.XElement, string> tmp = (xElement) =>
                {
                    var bigImage = xElement.Element("src_xxxbig");
                    if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value))
                    {
                        return(bigImage.Value);
                    }
                    bigImage = xElement.Element("src_xxbig");
                    if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value))
                    {
                        return(bigImage.Value);
                    }
                    bigImage = xElement.Element("src_xbig");
                    if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value))
                    {
                        return(bigImage.Value);
                    }
                    bigImage = xElement.Element("src_big");
                    if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value))
                    {
                        return(bigImage.Value);
                    }
                    bigImage = xElement.Element("src");
                    if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value))
                    {
                        return(bigImage.Value);
                    }
                    bigImage = xElement.Element("src_small");
                    if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value))
                    {
                        return(bigImage.Value);
                    }
                    return(null);
                };

                var photos = xDoc.Descendants("photo")
                             .Select(a => new Thumbnail()
                {
                    Name     = a.Element("src_small").Value.Split('/').Last(),
                    Title    = tmp(a).Split('/').Last(),
                    BigImage = tmp(a),
                    Image    = ImageDataFromUri(a.Element("src_small").Value),
                    Checked  = false
                });

                imageList.Clear();
                foreach (var photo in photos)
                {
                    imageList.Add(photo);
                }
                return(imageList);

            case "utils.resolveScreenName":
                return(xDoc.Element("response").HasElements ? xDoc.Element("response").Element("object_id").Value : null);

            case "users.get":
                return(xDoc.Element("response").Element("id").Value);

            default:
                break;
            }
            return(null);
        }
Ejemplo n.º 9
0
        private object ParseXml(string type, string XmlString, Func<string, object> customParser)
        {
            var imageList = new Thumbnails();
            var xDoc = System.Xml.Linq.XDocument.Parse(XmlString);

            if (xDoc.Root.Name.ToString() == "error")
            {
                var str = "API error:\n" + xDoc.Descendants("error")
                                               .Select(el => el.Element("error_msg").Value)
                                               .ToList<String>()[0];
                Debug.WriteLine(str);
                return null;
            }

            if (customParser != null)
                return customParser(XmlString);

            switch (type)
            {
                case ("photos.getAlbums"):
                    var albums = xDoc.Descendants("album").Select(a => new Thumbnail
                    {
                        Name = a.Element("aid").Value,
                        Title = a.Element("title").Value,
                        Image = ImageDataFromUri(a.Element("thumb_src").Value),
                        Checked = false
                    });
                    imageList.Clear();
                    foreach (var album in albums)
                        imageList.Add(album);
                    return imageList;

                case ("photos.get"):
                    Func<System.Xml.Linq.XElement, string> tmp = (xElement) =>
                    {
                        var bigImage = xElement.Element("src_xxxbig");
                        if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value))
                            return bigImage.Value;
                        bigImage = xElement.Element("src_xxbig");
                        if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value))
                            return bigImage.Value;
                        bigImage = xElement.Element("src_xbig");
                        if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value))
                            return bigImage.Value;
                        bigImage = xElement.Element("src_big");
                        if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value))
                            return bigImage.Value;
                        bigImage = xElement.Element("src");
                        if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value))
                            return bigImage.Value;
                        bigImage = xElement.Element("src_small");
                        if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value))
                            return bigImage.Value;
                        return null;
                    };

                    var photos = xDoc.Descendants("photo")
                                     .Select(a => new Thumbnail()
                                     {
                                         Name = a.Element("src_small").Value.Split('/').Last(),
                                         Title = tmp(a).Split('/').Last(),
                                         BigImage = tmp(a),
                                         Image = ImageDataFromUri(a.Element("src_small").Value),
                                         Checked = false
                                     });

                    imageList.Clear();
                    foreach (var photo in photos)
                        imageList.Add(photo);
                    return imageList;

                case "utils.resolveScreenName":
                    return xDoc.Element("response").HasElements ? xDoc.Element("response").Element("object_id").Value : null;

                case "users.get":
                    return xDoc.Element("response").Element("id").Value;

                default:
                    break;
            }
            return null;
        }