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; })); }
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(); }
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))); } } }
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); } }
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" }); }
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); }
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; }