如何填充除某些区域(路径)C#Graphics之外的路径
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何填充除某些区域(路径)C#Graphics之外的路径相关的知识,希望对你有一定的参考价值。
现在我正在开发一个Windows表单C#App,它用dlib检测你的脸(https://github.com/takuya-takeuchi/DlibDotNet) 它获得了具有积分的68个面部地标
因此,我已经为嘴唇,鼻子,眼睛和眉毛制作了一个图形路径,以及一条围绕着所有脸部的路径,我的问题是,是否可以减去眼睛,眉毛,嘴唇和鼻子的路径。覆盖所有的脸,所有的脸都“排除”那些区域?
我发现这在xaml中是可能的:
(Qazxswpoi)https://docs.microsoft.com/en-us/visualstudio/designers/draw-shapes-and-paths?view=vs-2017
那么可以在C#中使用图形路径和位图进行ExcludeOverlap或Substract吗?如果是这样怎么样?
(我知道发布一些代码几乎是一个不言而喻的规则,但我基本上做的是为面部的每个部分创建一个图形路径,然后使用Graphics.FillPath()在位图上绘制它们)
是否有可能从覆盖所有脸部的眼睛,眉毛,嘴唇和鼻子路径中减去所有脸部“排除”那些区域?
这不仅是可能的;事实上,这是组合的默认设置:您将较小的内部路径添加到较大的外部路径,当您填充它们时,它们将是空洞。
但是,当您在“孔”上覆盖更多路径时会发生这种情况,从而导致孔内的正面区域。
要使所有路径相加(Or -ing),您可以将GraphicsPaths
属性更改为FillMode
。默认值是“替代”,它将创建漏洞(Xor -ing the araes。)
要获得完全控制,您可以使用Winding
。它们可以随意与整组设置操作组合。但它们不支持抗锯齿,因此曲线和倾斜线看起来很粗糙。
例:
以上是关于如何填充除某些区域(路径)C#Graphics之外的路径的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有 mod_rewrite 的情况下重定向除一个路径及其所有子路径之外的所有 URL?