protected static void ProcessImage(Image inImage, string outPath, int targetWidth, int targetHeight, bool expandHeight, bool upscale, bool quantize) { var outImage = Shared.ResizeImage(inImage, null, null, targetWidth, targetHeight, upscale, true, false, expandHeight); if (quantize) { Quantize(ref outImage); } outImage.Save(outPath, ImageFormat.Png); outImage.Dispose(); }
protected static Stream ProcessImageToStream(Image inImage, int targetWidth, int targetHeight, bool expandHeight, bool upscale, bool quantize) { var outImage = Shared.ResizeImage(inImage, null, null, targetWidth, targetHeight, upscale, true, false, expandHeight); var stream = new MemoryStream(); if (quantize) { Quantize(ref outImage); } outImage.Save(stream, ImageFormat.Png); outImage.Dispose(); stream.Position = 0; return(stream); }
private void ShowSelected() { var items = listViewGames.SelectedItems; if (items.Count != 1) { listViewImages.Items.Clear(); listViewImages.Enabled = false; } else { listViewImages.BeginUpdate(); listViewImages.Items.Clear(); NesApplication game = items[0].Tag as NesApplication; var matchedCovers = game.CoverArtMatches.ToArray(); int i = imageList.Images.Count; listViewImages.View = matchedCovers.Length < 100 ? View.LargeIcon : View.List; if (imageIndexes.ContainsKey(game.Metadata.AppInfo.Name)) { var item = new ListViewItem(Resources.DefaultNoChange); item.ImageIndex = imageIndexes[game.Metadata.AppInfo.Name]; listViewImages.Items.Add(item); } else { var image = Shared.ResizeImage(game.Metadata.AppInfo.DefaultCover, null, listViewImages.BackColor, 114, 102, false, true, true, true); imageList.Images.Add(image); var item = new ListViewItem(Resources.DefaultNoChange); imageIndexes.Add(game.Metadata.AppInfo.Name, item.ImageIndex = i++); listViewImages.Items.Add(item); } foreach (var match in matchedCovers) { var item = new ListViewItem(Path.GetFileName(match)); if (imageIndexes.ContainsKey(match)) { item.ImageIndex = imageIndexes[match]; } else { if (matchedCovers.Length < 100) { var image = Shared.ResizeImage(Image.FromFile(match), null, null, 114, 102, false, true, true, true); imageList.Images.Add(image); imageIndexes.Add(match, item.ImageIndex = i++); } } listViewImages.Items.Add(item); } for (int j = 0; j < listViewImages.Items.Count; ++j) { if (listViewImages.Items[j].Text == items[0].SubItems[4].Text) { listViewImages.Items[j].Selected = true; break; } } listViewImages.Enabled = true; listViewImages.EndUpdate(); } }