Jak zmienić rozmiar obrazu bez utraty jakości

Mam duży obraz w dobrej jakości (dla moich potrzeb), potrzebuję zmienić rozmiar na mały (30 x 30px), zmieniam jego rozmiar za pomocą grafiki.DrawImage. Ale kiedy zmieniam rozmiar, staje się niewyraźny i mało lżejszy. Mam też próbę CompositingQuality i InterpolationMode, ale wszystko było źle.

Przykład, ta jakość, którą próbuję uzyskać.

Mój wynik

Edytowane Obraz ikony rysuję sam, może lepiej będzie narysować go bez zmiany rozmiaru?

Edit2

Kod zmiany rozmiaru:

                Bitmap tbmp;
                //drawing all my features in tbmp with graphics
                bmp = new Bitmap(width + 5, height + 5);
                bmp.MakeTransparent(Color.Black);
                using (var gg = Graphics.FromImage(bmp))
                {
                    gg.CompositingQuality = CompositingQuality.HighQuality;
                  //  gg.SmoothingMode = SmoothingMode.HighQuality;
                    gg.InterpolationMode = InterpolationMode.HighQualityBicubic;

                    gg.DrawImage(tbmp, new Rectangle(0, 0, width, height), new Rectangle(GXMin, GYMin, GXMax + 20, GYMax + 20), GraphicsUnit.Pixel);
                    gg.Dispose();
                }

questionAnswers(1)

yourAnswerToTheQuestion