我弄了一个CDIB类,用来做图像处理,然后图像分割后存在了CDIB类里的Bitmap数组里,
Bitmap [] bdbs = new Bitmap[size] (函数里完成的)
然后在Panel里循环显示图片,第一轮循环还好,第二轮循环,显示的图片就乱七八糟,最后一团黑+彩色点....是不是因为Bimtmap数组里的内存资源被回收的缘故?有没有办法长期保存....

解决方案 »

  1.   


    图片已经存起来了...存在了CDIB类的Bitmap数组里面....
      

  2.   


    我没回收啊,我的图片都保存在Bitmap数组里啊....
      

  3.   

    如果有错,为什么第一次循环能够真确显示,而且我试过,如果我显示固定的一张图片,然后设个按钮,刷新panel,刷几次以后,同一张图片也会变成一团黑..+密麻的彩色点...............
      

  4.   

    想贴...不能同时回复三次...//panel paint
     private void panel_Paint(object sender, PaintEventArgs e)
            {
                e.Graphics.DrawImage((Image)cdib.sep_bmps[index], 20, 20);
            }
    // refresh bn event
      private void BNTURN_Click(object sender, EventArgs e)
            {
                //index = (++index) % cdib.sep_num;
                this.panel.Refresh();
            }
      

  5.   

    解决了,的确是代码有错...不过是在构造Bitmap对象时,使用的图像数据是在局域变量里导致的~~