在我的应用程序中,我注意到了一些图像瑕疵。我发现问题在于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());
}