Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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();
            }
        }