gpt4 book ai didi

c# - 通过 C# 图形绘制 "transparent"文本,但以某种方式将绘制的文本变为 "missing",因此它在生成的图像中是透明的

转载 作者:行者123 更新时间:2023-12-04 13:04:16 24 4
gpt4 key购买 nike

我想在 DC 上绘制一个字符串(图形 - 我使用的是 C#)- 但我希望绘制的文本从图像中“删除”,这样剩下的基本上就是文本的剪切。

如果我用透明画笔绘制 DrawString 显然什么都不会发生。

有没有一种绘制类似东西的方法,或者我是否需要使用 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,Graphics-Object 不会更新,其次,您需要使用 Xor。

请注意,制作 GraphicsContainer 是可选的,但会使封装更容易,尤其是在您使用转换时。

关于c# - 通过 C# 图形绘制 "transparent"文本,但以某种方式将绘制的文本变为 "missing",因此它在生成的图像中是透明的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6132487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com