一个.net中关于this.Region的bug。大家帮忙进来一下,MS的工程师最好也进来看看。。。。 ;(
我写了一个函数用于根据指定的Bitmap,用非背景颜色的区域(事先用统一的颜色填充要去掉的区域)Union出新的不规则Region。最后再this.Region = ResultRegion;
遇到的问题是:当我用一张小图片时,没问题。但当我用一个大图片时,this.Region = ResultRegion;会造成StackOver.为什么???
而且如果我不用this.Region 和Region类,而是全部用API代替,则一切正常!!!!!!!!
代码如下:
private Region GetImageRegion2(Bitmap Image)
{
Region r1;
int x,y;
r1 = new Region(new Rectangle(0, 0, 1, 1));
for (y = 0;y <Image.Height;y++)
{
for (x = 0;x < Image.Width;x++)
{
//如果该点的颜色 != Red
if (!((Image.GetPixel(x, y).R ==255) && (Image.GetPixel(x, y).G ==0) && (Image.GetPixel(x, y).B ==0)))
{
r1.Union(new Rectangle(x, y, 1, 1));
}
}
}
return r1;
}
private void button1_Click(object sender, System.EventArgs e)
{
Region ResultRegion;
ResultRegion = GetImageRegion2((Bitmap)pictureBox1.Image);
this.Region = ResultRegion;
}