C# Bitmap dziwne kolory po pobraniu.

0

Mam kod który z elementów listy które są linkami pobiera zdjęcia a następnie umieszcza je w ImageList tylko że te pobrane mają dziwne kolory czy można coś na to poradzić?

title
Kod na pobranie.

            List<string> adress = new List<string>() { "http://bi.gazeta.pl/im/41/4e/13/z20243265IE,Fiat-124-SPider.jpg", "http://bi.gazeta.pl/im/41/4e/13/z20243265IE,Fiat-124-SPider.jpg"};

            foreach (string img in adress)
            {
                WebRequest request = WebRequest.Create(img);
                WebResponse resp = request.GetResponse();
                Stream respStream = resp.GetResponseStream();
                Bitmap bmp = new Bitmap(respStream);
                respStream.Dispose();

                imageList1.Images.Add(bmp);
                listCount++;
            }

0

Ustaw w tym ImageList właściwość ColorDepth na 32 bo domyśnie jest 8bit i dlatego psuje Ci jakość. Te imageList jest trochę do bani bo na sztywno musisz ustawić wielkość (rozmiar) przechowywanych w nim obrazów, ale jak to Ci nie przeszkadza to go używaj.

0

Do takich rzeczy aż się prosi await DownloadFileTaskAsync i poczytaj o await.

EDIT: przykład użycia.

        private async void button1_Click(object sender, EventArgs e)
        {
            var button = sender as Control;
            button.Enabled = false;
            var wc = new WebClient();
            var fname = Path.GetTempFileName();
            await wc.DownloadFileTaskAsync("https://static.4programmers.net/img/logo.png", fname);
            pictureBox1.Image = Bitmap.FromFile(fname);
            button.Enabled = true;
        }

w ten sposób nie zawieszasz programu na czas ściągania plików.

1 użytkowników online, w tym zalogowanych: 0, gości: 1