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保存到本地,发现里面图片并没有错误。估计出错的是在第四步

解决方案 »

  1.   

    无代码无真相,
    估计Image1和Image2指到同一个内存中了
      

  2.   

    尝试着把Image1和Image2保存到本地,发现里面图片并没有错误。
      

  3.   

    声明两个TextureBrush对象,并使用第二步中的Image对象构造TextureBrush(Image);
    这个地方应该是TextureBrush(Image1);和TextureBrush(Image2);你不会弄错了吧。
      

  4.   

    不贴代码光说,怎么说的清啊
    //写个简单的给你参考下吧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区域还是一样么?