我最近发现了 GDI plus 的 DrawPolygon API 的一个奇怪行为。也就是说,如果我将笔的 alpha 值设置为 255(无透明度),它会给我一个结果,但如果我将 alpha 设置为 0-255 之间的数字,它会给我另一个结果。
他们是这样的:
这是没有透明度的结果
如果我将笔的 alpha 值设置为 100,结果如下:
如果没有笔的 alpha 值的差异,它们都具有以下相同的条件:
gdi.InterpolationMode = GDI.Drawing2D.InterpolationMode.NearestNeighbor;
gdi.SmoothingMode = GDI.Drawing2D.SmoothingMode.None;
gdi.CompositingMode = GDI.Drawing2D.CompositingMode.SourceCopy;
GDI.Pen pen = new GDI.Pen(GDI.Color.FromArgb(a, r, g, b), 1); // The pen width is 1
以及用于绘制的点数组:{(0, 2), (2, 2), (1, 0)}
你知道造成这种差异的原因吗?