【发布时间】:2011-10-31 02:13:03
【问题描述】:
VB 6.0 中的MaskColor 属性用于去除Image 的背景颜色。我如何在 C# 中做同样的事情?
【问题讨论】:
-
链接到 VB6 文档,以确保完整性。 msdn.microsoft.com/en-us/library/aa239018(v=vs.60).aspx
标签: c# vb6 background-color masking
VB 6.0 中的MaskColor 属性用于去除Image 的背景颜色。我如何在 C# 中做同样的事情?
【问题讨论】:
标签: c# vb6 background-color masking
您可以将MakeTransparent(Color color) 用于位图图像。示例:
//convert the red color in the image into transparent.
((Bitmap)BackgroundImage).MakeTransparent(Color.Red);
【讨论】:
我不认为有任何直接的等价物。
过去,我通过使用 ColorMap 类将我的背景颜色映射到 Color.Transparent 使其工作。然后我创建一个 ImageAttributes 对象并调用 SetRemapTable() 函数并将我的 ColorMap 传递给它。然后通过将 ImageAttributes 传递给 DrawImage 方法来重绘图像。
编辑:
Jalal 发布了一种更简单的纯色方法。我仔细查看了使用上述方法的代码,我将多个相同基色的阴影映射到透明。
【讨论】:
MakeTrasparent 方法,为你想在同一个位图中透明的每种颜色