带画布DrawImage的图像伪像

时间:2020-03-29 07:19:29

标签: c# gdi+

在我的应用程序中,我注意到了一些图像瑕疵。我发现问题在于DrawImage会降低每个绘图处的图像。 当我在透明图像上绘制图像时,像素颜色会稍微改变。如果多次绘制,像素颜色会不断下降。 您可以在所附的示例中看到,几次绘制后,颜色值(RGB)从29变为15。 我尝试了Graphics的不同属性(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());
    }

0 个答案:

没有答案