我希望在 DC 上绘制一个字符串(图形 - 我正在使用 C#) - 但我希望将绘制的文本从图像中“删除”,以便剩下的本质上是文本的剪切。
如果我用透明画笔绘制绳索,显然什么都不会发生。
有没有一种方法可以绘制类似的东西,或者我是否需要使用 2 个 DC 和 BitBlt 以及 NOT 或 XOR 或其他任何组合(我几年前做过类似的事情,但想知道是否有更简单的方法)?
如果你想从图像中剪掉某些东西,你可以这样做:
Drawing2D.GraphicsContainer c = graphics.BeginContainer();
GraphicsPath p = new GraphicsPath();
p.AddString(...);
graphics.SetClip(p, CombineMode.Xor);
graphics.DrawImage(this.Image, this.Location);
graphics.EndContainer(c);
这就像上面的解决方案,但首先如果没有 SetClip,图形对象不会更新,其次,您需要使用 Xor。
请注意,创建 GraphicsContainer 是可选的,但会使封装更容易,特别是在使用转换时。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)