2

我的问题很简单,但我无法处理。我有一个 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);

    }

我展示的表格上的绘画事件使它们变得圆润,但这并不是我必须做的所有事情。如何从背景中排除黑色部分以及如何将白色部分变为红色?

4

2 回答 2

1

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

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

于 2013-04-05T11:44:28.340 回答
1

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

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

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

于 2013-04-05T12:01:47.553 回答