我的问题很简单,但我不能处理它。我有一个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);
}我在窗体上显示的Paint事件使它们变圆,但这并不是我必须做的所有事情。如何从背景中排除黑色部分,以及如何将白色部分转换为红色部分?
发布于 2013-04-05 20:01:48
考虑到您所描述的内容,您可能会发现:
http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.maketransparent(v=vs.71).aspx
Bitmap.MakeTransparent()是一种有用的探索方法,它允许你将图像中给定的颜色变成透明的。
发布于 2013-04-05 19:44:28
如果您使用具有透明背景的文件,如.png或.gif,当您将其设置为窗体背景时,您应该只能看到圆形的阴阳形状。你可以很容易地用GIMP或Photoshop编辑.jpg,使矩形在圆圈外透明。
编辑:这是你想要做的吗?
https://stackoverflow.com/questions/15832944
复制相似问题