我目前正在使用 C# Bitmaps und Graphics 编写一个简单的图像操纵器。我正在使用服装透明元素,它工作正常。在我的 Draw-Method 中,我通过绘制来更新控件以设置图像:
ImageAttributes attr = new ImageAttributes();
attr.SetColorKey(this.transpKey, this.transpKey);
Rectangle dstRect = new Rectangle(0, 0, this.image.Width, this.image.Height);
e.Graphics.DrawImage(this.image, dstRect, 0, 0, this.image.Width, this.image.Height, GraphicsUnit.Pixel, attr);
e.Graphics.Dispose();
现在我需要一个函数来擦除一些像素。使用 Form 并在 BackgroindImage 上绘图,我可以使用 TransparencyKey-Prperty “擦除”像素。但是这个属性在我的服装控制中不存在。这就是我使用“attr.SetColorKey(this.transpKey, this.transpKey);”的原因,但是问题就来了。它只是使像素透明,并且下面的像素将可见。
有谁知道如何强制 C# 替换像素而不是离开它们?或者有人知道我的问题的解决方案吗?
非常感谢您的阅读、思考和帮助。
//编辑:好的,现在我发现我可以使用“e.Graphics.CompositingMode = CompositingMode.SourceCopy;” 设置像素将被替换。但在那之后,透明度被破坏了。结果是一样的。什么都没有抹去。有什么解决办法吗?