编码:
this.TopMost = true;
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.splitContainer1.SplitterDistance = (this.ClientSize.Width -
this.splitContainer1.SplitterWidth) / 2;
pictureBox1.Image = Image.FromFile(@"d:\gifs\RadarGifAnimatoion.gif");//pb1.Image;
pictureBox2.Image = Image.FromFile(@"d:\gifs\SatelliteGifAnimatoion.gif");//pb2.Image;
timer1.Interval = animationSpeed;
timer1.Enabled = true;
我有一个计时器滴答事件:
private void timer1_Tick(object sender, EventArgs e)
{
}
在此示例中,计时器间隔为 80 毫秒。因此,在 timer1 滴答事件中,我希望每 80 毫秒拍摄两个图片框的快照或屏幕截图,并将这张照片保存到硬盘上。
所以最后我将在硬盘上保存两个图片框的 5 个图像。因此,如果我在硬盘上编辑 5 的每个图像,我将看到两个图片框图像。
如何在 timer1 滴答事件中做到这一点?
timer1 滴答事件中的更新代码:
private void timer1_Tick(object sender, EventArgs e)
{
using (var still = new Bitmap(this.Width, this.Height))
{
this.DrawToBitmap(still, new Rectangle(new Point(0, 0), still.Size));
still.Save(String.Format(@"d:\GifForAnimation\still_{0}.gif", sequence++), System.Drawing.Imaging.ImageFormat.Gif);
if (sequence == 5)
{
timer1.Stop();
}
}
}
我将构造函数中的 timer1 间隔设置为与创建动画时相同的速度。动画速度为 80 毫秒,因此 timer1 也设置为 80 毫秒。
并且仍然不是每 80 毫秒拍摄一张图片框的图像,而是拍摄或保存相同的图像。5张相同的图片。