日期:2014-05-17  浏览次数:20949 次

关于Graphics中的FillPolygon填充时的问题
1、我写了一个函数A,函数A的作用是把图片保存到内存流中。
2、声明两个Image对象,并分别保存通过函数A返回的两个图片内存流;
3、声明两个TextureBrush对象,并使用第二步中的Image对象构造TextureBrush(Image);
4、通过Graphics中的FillPolygon(Brush, Point()),把第二步中的两个图片填充到相应的图形区域中,如将Image1填充到A区域,把Image2填充到 B区域,但是做出的结果中我发现,B区域填充的是Image2是正确的,但是A区域填充的不是Image1而是Image2.
--说明下,Image1和Image2在保存到内存流的时候都是调用同一个函数的。


现在出现的问题是:我本想把Image1填充到A区域,把Image2填充到 B区域,但是做出的结果中我发现,B区域填充的是Image2是正确的,但是A区域填充的不是Image1而是Image2

=====进展============
尝试着把Image1和Image2保存到本地,发现里面图片并没有错误。估计出错的是在第四步

------解决方案--------------------
不贴代码光说,怎么说的清啊

C# code

//写个简单的给你参考下吧

private Bitmap CreateBmp(int width,int height,string type)
{
    Bitmap bmp = new Bitmap(width,height);
    using(Graphics g = Graphics.FromImage(bmp)
    {
       if(type == "1")
       {
          //g.FillRectangle() 填充个矩形
       }
       else
       { 
          //随便画另个图形,比如画个圆
       }
    }
}

//调用

Image imga = CreateBmp(100,100,"1");
Image imgb = CreateBmp(100,100,"2");

//你看看A、B区域还是一样么?