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



我的问题很简单,但是我处理不了。我有一个阴阳。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);
    }

在我的窗体上绘制事件,我显示使他们圆形,但这不是我要做的全部事情。如何从背景中排除黑色部分,如何将白色部分改为红色部分?

根据你的描述,你可能会发现:

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

Bitmap.MakeTransparent()一个有用的探索方法,它允许您将图像中的给定颜色变为透明。

如果你使用透明背景文件,如。png或。gif,你应该能够只看到圆形的阴阳形状,当你把它设置为窗体背景。你可以很容易地用GIMP或Photoshop编辑。jpg,使矩形在圆的外面透明。

这是你想要做的吗?

最新更新