【问题标题】:How can I make a loop to generate images infinite time to make a movie clip?如何制作循环以无限时间生成图像以制作影片剪辑?
【发布时间】:2014-02-24 11:51:49
【问题描述】:

我有一个问题,如何创建一个无限期运行一段代码的循环?基本上我有一个使用随机函数创建像素化位图图像并将其显示到我的图像框到用户界面的代码和平。 但是,当我需要执行那段代码以同时生成图像并连续播放以制作这些图像的视频剪辑时,我遇到了困难。我使用了“while (true)”循环,但它没有在我的屏幕上显示任何内容,而且我的程序每次运行代码时都会崩溃。 谁能告诉我如何制作一个非常流畅的循环,以毫秒为间隔执行我的代码?

While (true)
{
    foreach (Point p in blackPixels)
    {
       if (r.NextDouble() < 0.20)
       {
           bmp.SetPixel(p.X, p.Y, Color.Black);
       }
       else
       {
           bmp.SetPixel(p.X, p.Y, Color.White);
       }
    }

    pictureBox1.Image = bmp;
}

【问题讨论】:

  • 在你的算法中使用递归。但即使这样也有一个结束标准(它不是无限的)。此外,您还需要更多地研究递归的内存管理。
  • 您也不会在任何时候更新您的用户界面。您的代码正在生成新图像,但从不更新前端。
  • 尼尔奈特,你能解释清楚你的意思吗?我正在使用“pictureBox1.Image = bmp;”每次,所以它应该更新我的输出!

标签: c# image loops bitmap switch-statement


【解决方案1】:

如果您在 UI 线程上运行此代码,则不会显示任何内容,因为您的 while 循环阻塞了线程。您需要将代码放在单独的线程或任务中。

【讨论】:

  • 大家有什么切实可行的解决办法吗?!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 2017-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多