Артефакты изображения с холстом DrawImage - PullRequest
1 голос
/ 29 марта 2020

В моем приложении я заметил некоторые артефакты изображения. Я обнаружил, что проблема в том, что DrawImage ухудшает изображение на каждом чертеже. Когда я рисую изображение поверх прозрачного изображения, цвет пикселя немного меняется. Если я нарисую его несколько раз, цвет пикселя будет ухудшаться. Вы можете видеть в прикрепленном примере, что значения цвета (RGB) достигают от 29 до 15 после нескольких др aws. Я пробовал разные свойства графики (InterpolationMode, PixelOffsetMode, SmoothingMode, CompositingQuality), но результат был одинаковым. Кто-нибудь из вас знает решение этой проблемы?

public static void Main(string[] args)
    {
        Bitmap bmporig = new Bitmap(1, 1, PixelFormat.Format32bppArgb);
        bmporig.SetPixel(0, 0, Color.FromArgb(247, 29, 29, 29));
        Bitmap bmp = null;

        for (int i = 0; i < 15; i++) 
        {
            bmp = new Bitmap(1, 1, PixelFormat.Format32bppArgb);
            Graphics gr = Graphics.FromImage(bmp);
            gr.DrawImage(bmporig, 0, 0);

            bmporig = bmp;
        }

        System.Drawing.Color col = bmp.GetPixel(0,0);
        Console.WriteLine(col.A.ToString() + "," + col.R.ToString() + "," + col.G.ToString() + "," + col.B.ToString());
    }
...