通过颜色排除图像的一部分

时间:2013-04-05 11:36:18

标签: c# winforms image

我的问题很简单,但我无法处理。我有一个yin-yang.jpg文件,我想只得到圆形(没有矩形,这应该是不可点击的),更多的是整个白色的颜色变为红色和黑色的部分应该也被排除在图像之外(不可点击)。

该图片将是我的表单背景,我希望在应用程序开始时显示。

private void hello_form_Paint(object sender, PaintEventArgs e)
    {
        Form f = (Form)sender;
        f.BackgroundImage = global::TicTacToe.Properties.Resources.ying_yang1;
        GraphicsPath formPath = new GraphicsPath();
        Rectangle newRectangle = f.ClientRectangle;
        e.Graphics.DrawEllipse(System.Drawing.Pens.Black, newRectangle);
        newRectangle.Inflate(-5, -5);
        formPath.AddEllipse(newRectangle);
        f.Region = new Region(formPath);

    }

我所展示的表格上的油漆事件使它们成为圆形,但并非所有我必须做的事情。如何从背景中排除黑色部分以及如何将白色部分更改为红色部分?

2 个答案:

答案 0 :(得分:1)

如果您使用具有.png或.gif等透明背景的文件,则在将其设置为表单背景时,您应该只能看到圆形阴阳形状。 您可以使用GIMP或Photoshop轻松编辑.jpg,使矩形在圆圈外透明。

编辑:这是你想要做的吗?

答案 1 :(得分:1)

鉴于您所描述的内容,您可能会发现:

http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.maketransparent(v=vs.71).aspx

Bitmap.MakeTransparent()一种有用的探索方法,可让您将图片中的指定颜色变为透明。