【发布时间】:2015-01-15 21:58:16
【问题描述】:
我有一个位图,我想将透明度应用于由多边形定义的特定区域。那不是问题。我目前面临的问题是如何将透明度应用于多边形的反转区域。我试过使用 Bitmap.SetPixel() 但这太慢了。这是我当前适用于法线多边形的方法:
public Bitmap Mask(Bitmap b, Point[] mask, bool invert)
{
Bitmap ret = new Bitmap(width, height, PixelFormat.Format32bppArgb);
Graphics g = Graphics.FromImage(ret);
g.Clear(Color.FromArgb(255,255,255,255));
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
g.DrawImage(b, 0, 0, width, height);
g.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy;
g.FillPolygon(new SolidBrush(Color.Transparent), mask);
return ret;
}
【问题讨论】:
-
您是否尝试过解决如何将透明度应用于多边形的倒置区域选择的问题?如果你有,请告诉我们你尝试了什么,以及为什么你被卡住了。仅仅要求某人为您完全弄清楚某事表明您付出的努力很少,并且不太可能得到回应。
标签: c# graphics bitmap transparency polygon