当float变量达到360时,如何停止保存位图数据?

时间:2014-10-08 14:12:32

标签: c# .net winforms

在表格的顶部我做了:

private static float angleCopy;
private Bitmap bmpnew;

然后在构造函数中:

angleCopy = 0;
bmpnew = new Bitmap(512, 512);

然后在计时器滴答事件中,我将angleCopy指定给angleF _:

static float angleF_ = 0.0F;
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (angleF_ > 360F)
            {
                angleF_ -= 360F;
            }
            ReturnTexture(scannedCloudsTexture, cloudPoints, angleArray, angleF_,bmpnew);
            DisplayOnScreen(angleF_);
            angleF_ += vScrollBar1.Value;//1.0F;
            angleCopy = angleF_;
        }

然后在ReturnTexture方法中,我从方法底部的计时器tick事件中调用它:

if (angleCopy == 360)
            {
                bmpnew.Save(@"c:\temp\bmpnewtest.bmp");
            }

我希望当它达到360以停止保存而不是停止计时器时。 问题是,angleCopy现在会低于360,并且会一直保存。

如何在360到达时停止保存?

1 个答案:

答案 0 :(得分:1)

您需要一个名为stopSaveAngleCopy的其他私有变量,默认设置为false,当您的angleF_变量等于360时,仅设置为true你的timer1_tick事件。

然后稍后在保存位图的地方,只要检查该变量是否为真 根据您是否需要在以后再次保存,您可以随时添加逻辑,将其重新设置为false

(我希望我能正确理解你的问题)