private void AddImageFromDiscogsAsync(DiscogsNet.Model.Image discogsImage) { byte[] imageData; try { WebClient webClient = new WebClient(); imageData = webClient.DownloadData(discogsImage.Uri); } catch { Dialogs.Error("Error downloading image."); return; } this.window.Dispatcher.BeginInvoke(new Action(() => { MusicDatabase.Engine.Entities.Image image = new MusicDatabase.Engine.Entities.Image() { Extension = discogsImage.Aggregate.Extension, IsMain = discogsImage.Type == DiscogsNet.Model.ImageType.Primary, MimeType = discogsImage.Aggregate.MimeType, Type = discogsImage.Type == DiscogsNet.Model.ImageType.Primary ? ImageType.FrontCover : ImageType.Other }; if (this.imagesEditor.AddImage(image, imageData)) { this.release.Images.Add(image); } })); }
public bool AddImage(Image image, byte[] bytes) { bool anyImagesMain = this.Images.Any(i => i.Image.IsMain); if (image.IsMain && anyImagesMain) { this.Images.Where(i => i.Image.IsMain).ForEach(i => i.IsMain = false); } else if (!image.IsMain && !anyImagesMain) { image.IsMain = true; } this.Images.Add(new ImageInfo() { Image = image, Data = bytes, EditorVisibility = this.IsReadOnly ? Visibility.Collapsed : Visibility.Visible, IsReadOnly = this.IsReadOnly }); this.listView.ScrollIntoView(this.Images.Last()); return(true); }
public void RemoveImage(Image image) { ImageInfo imageInfo = this.Images.Where(i => i.Image == image).First(); this.Images.Remove(imageInfo); this.release.Images.Remove(image); }
private void AddFile(string fileName, ImageType type) { byte[] data; try { data = File.ReadAllBytes(fileName); } catch { Dialogs.Error("Unable to read file!"); this.comboAddItem.SelectedIndex = 0; return; } Image image = new Image() { Type = type, Extension = Path.GetExtension(fileName), MimeType = MimeHelper.GetMimeTypeForExtension(Path.GetExtension(fileName)) }; if (this.AddImage(image, data)) { this.Release.Images.Add(image); } }
private void btnSave_Click(object sender, EventArgs e) { ListViewItem listItem = ((FrameworkElement)sender).ParentOfType <ListViewItem>(); ImageInfo imageInfo = (ImageInfo)this.listView.ItemContainerGenerator.ItemFromContainer(listItem); Image image = imageInfo.Image; SaveFileDialog dialog = new SaveFileDialog(); dialog.Filter = image.Extension.Trim('.').ToUpper() + " Images (*" + image.Extension + ")|*" + image.Extension; if (dialog.ShowDialog() == true) { File.WriteAllBytes(dialog.FileName, imageInfo.Data); } }
private void btnDelete_Click(object sender, EventArgs e) { if (Dialogs.Confirm()) { ListViewItem listItem = ((FrameworkElement)sender).ParentOfType <ListViewItem>(); ImageInfo imageInfo = (ImageInfo)this.listView.ItemContainerGenerator.ItemFromContainer(listItem); this.release.Images.Remove(imageInfo.Image); this.Images.Remove(imageInfo); if (this.release.Images.Count > 0 && !this.release.Images.Any(i => i.IsMain)) { Image image = this.release.Images[0]; ImageInfo mainImageInfo = this.Images.Where(i => i.Image == image).First(); mainImageInfo.IsMain = true; } } }
private void btnStudio_Click(object sender, RoutedEventArgs e) { ImageStudioImportWindow studioWindow = new ImageStudioImportWindow(); if (studioWindow.ShowDialog(Window.GetWindow(this)) == true) { foreach (OutputImage outputImage in studioWindow.OutputImages) { Image image = new Image() { Extension = outputImage.Extension, MimeType = MimeHelper.GetMimeTypeForExtension(outputImage.Extension) }; if (this.AddImage(image, outputImage.Bytes)) { this.Release.Images.Add(image); } } } }
public static void UpdateReleaseThumbnail(Release release, ICollectionImageHandler imageHandler) { Image mainImage = release.Images.FirstOrDefault(i => i.IsMain); if (mainImage != null) { byte[] thumbnail = null; string thumbExtension = null, thumbMimeType = null; thumbnail = ThumbnailGenerator.CreateThumbnail( imageHandler.LoadImage(mainImage), MusicDatabase.Engine.Entities.Release.ThumbnailSize, out thumbExtension, out thumbMimeType); release.Thumbnail = thumbnail; Assert.IsTrue(thumbMimeType == MusicDatabase.Engine.Entities.Release.ThumbnailMimeType); } else { release.Thumbnail = null; } }
public long GetImageByteLength(Image image) { throw new NotImplementedException(); }
public void DeleteImage(Image image) { throw new NotImplementedException(); }
public void StoreImage(Image image, byte[] bytes) { throw new NotImplementedException(); }
public void StoreImageFromXml(Image image, System.Xml.XmlReader reader) { throw new NotImplementedException(); }
public byte[] LoadImage(Image image) { return this.Images.Where(i => i.Image == image).First().Data; }
public byte[] LoadImage(Image image) { return(this.Images.Where(i => i.Image == image).First().Data); }
public void LoadDataFromRelease(Release release, ICollectionImageHandler imageHandler) { if (release.DiscCount != this.DatabaseRelease.DiscCount || release.Tracklist.Count != this.DatabaseRelease.Tracklist.Count) { Dialogs.Error("Tracklists do not match. Can not continue."); return; } this.DatabaseRelease.AdditionalFiles.Clear(); this.DatabaseRelease.AdditionalFiles.AddRange(release.AdditionalFiles); this.DatabaseRelease.Artists.Clear(); this.DatabaseRelease.Artists.AddRange(release.Artists.Select(ra => new ReleaseArtist() { Artist = this.CollectionManager.GetOrCreateArtist(ra.Artist.Name), JoinString = ra.JoinString })); this.DatabaseRelease.CatalogNumber = release.CatalogNumber; this.DatabaseRelease.Country = release.Country; //this.DatabaseRelease.DateAdded = release.DateAdded; //this.DatabaseRelease.DateModified = release.DateModified; //this.DatabaseRelease.DateAudioModified = release.DateAudioModified; this.DatabaseRelease.DiscogsReleaseId = release.DiscogsReleaseId; this.DatabaseRelease.DiscogsMasterId = release.DiscogsMasterId; this.DatabaseRelease.FlagMessage = release.FlagMessage; this.DatabaseRelease.Genre = release.Genre; this.DatabaseRelease.IsFlagged = release.IsFlagged; this.DatabaseRelease.JoinedAlbumArtists = release.JoinedAlbumArtists; this.DatabaseRelease.Label = release.Label; this.DatabaseRelease.Notes = release.Notes; this.DatabaseRelease.WikipediaPageName = release.WikipediaPageName; this.DatabaseRelease.OriginalReleaseDate = release.OriginalReleaseDate; this.DatabaseRelease.ReleaseDate = release.ReleaseDate; this.DatabaseRelease.Title = release.Title; this.additionalFilesEditor.Release = null; this.additionalFilesEditor.Release = this.DatabaseRelease; this.DatabaseRelease.Images.Clear(); this.imagesEditor.Release = null; this.imagesEditor.Release = this.DatabaseRelease; foreach (var image in release.Images) { var newImage = new MusicDatabase.Engine.Entities.Image() { Description = image.Description, Extension = image.Extension, IsMain = image.IsMain, MimeType = image.MimeType, Type = image.Type }; this.DatabaseRelease.Images.Add(newImage); this.imagesEditor.AddImage(newImage, imageHandler.LoadImage(image)); } for (int i = 0; i < release.Tracklist.Count; ++i) { this.DatabaseRelease.Tracklist[i].Artists.Clear(); this.DatabaseRelease.Tracklist[i].Artists.AddRange(release.Tracklist[i].Artists.Select(a => new TrackArtist() { Artist = this.CollectionManager.GetOrCreateArtist(a.Artist.Name), JoinString = a.JoinString })); this.DatabaseRelease.Tracklist[i].JoinedArtists = release.Tracklist[i].JoinedArtists; this.DatabaseRelease.Tracklist[i].Title = release.Tracklist[i].Title; } this.detailsEditor.Release = null; this.detailsEditor.Release = this.DatabaseRelease; this.RefreshAllDiscs(); }
public bool AddImage(Image image, byte[] bytes) { bool anyImagesMain = this.Images.Any(i => i.Image.IsMain); if (image.IsMain && anyImagesMain) { this.Images.Where(i => i.Image.IsMain).ForEach(i => i.IsMain = false); } else if (!image.IsMain && !anyImagesMain) { image.IsMain = true; } this.Images.Add(new ImageInfo() { Image = image, Data = bytes, EditorVisibility = this.IsReadOnly ? Visibility.Collapsed : Visibility.Visible, IsReadOnly = this.IsReadOnly }); this.listView.ScrollIntoView(this.Images.Last()); return true; }