从另一个线程绘制绘制图像?

时间:2013-08-08 02:09:52

标签: c# image panel draw

我读到你可以通过绘制paint事件来提高绘图速度/时间,并且你也可以绘制未缩放的绘图。

所以我非常想在我的面板上试一试。

问题是,图像在另一个线程中接收到GUI,我不知道如何将它提供给paint事件。

我真的不想调用和填充(因为这非常慢,至少当我使用它时)。

代码看起来像这样。

protected override void panel1_Paint(object sender, PaintEventArgs e, Image u)
{

        e.Graphics.DrawImageUnscaled(u, Point.Empty);

}

虽然我尝试使用覆盖添加在字段中添加图像,但是我想让它静态,所以我可以从线程调用它。可悲的是我没有工作。

但是,我试过了。

private void panel1_Paint(object sender, PaintEventArgs e)
{

     //   e.Graphics.DrawImageUnscaled(u, Point.Empty);

}

有一个“工作”的,除了我无法获得图像。

我尝试制作图像变量,然后将图像保存在该变量中,然后绘制它。 但是油漆永远不会看到它中的图像,它无法访问图像,猜测它是从另一个线程写的。

//initialize
private Image Im;

////////

my Thread
 Im = Image.FromStream(....);
////////////7

         void panel1_Paint(object sender, PaintEventArgs e)
        { 
                if(Im !=null)
                e.Graphics.DrawImageUnscaled(Im, Point.Empty);          
        }

这就是我尝试过的方式,但失败了。

0 个答案:

没有答案