为什么执行这一句FillRegion(Brush brush,Region region)要花很长时间,超过600ms
- C# code
TextureBrush bgimgBruch = new TextureBrush(m_bgImage); GraphicsPath bgimgPath = new GraphicsPath(); Region eRegion = null;//..... eRegion 在这里创建, 并执行了多次Uinon(超过600次)操作。 System.Diagnostics.Stopwatch timer2 = new System.Diagnostics.Stopwatch();//new一个stopwatch timer2.Start(); g.FillRegion(bgimgBruch, eRegion); timer2.Stop(); FileLog.WriteInfo("Draw(Graphics g) ", "Region Spend time: " + timer.ElapsedMilliseconds.ToString() + " FillRegion Spend time: " + timer2.ElapsedMilliseconds.ToString());
g.FillRegion(bgimgBruch, eRegion); 这句话的执行时间跟前面eRegion 执行Union的次数成一个比例关系。eRegion是很多不规则图像的组合。 但这个语句执行速度也太慢了, 超过600ms, 再多一点估计更慢。
有什么办法提高这个画图的速度吗?
[解决办法]
图形太复杂
[解决办法]
有,把复杂图形转换为字体然后绘制,速度立马上升
[解决办法]
FillRegion本身效率不高,别奢求了