コード:
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)
{
}
この例では、タイマー間隔は 80ms です。したがって、timer1 tick イベント内で、80ms ごとに両方の pictureBox のスナップショットまたはスクリーンショットを取得し、このショットをハードディスクに保存する必要があります。
したがって、最終的には、たとえば 2 つの pictureBoxes の 5 つの画像をハードディスクに保存します。したがって、ハードディスク上の 5 つの各画像を編集すると、2 つの pictureBoxes 画像が表示されます。
timer1 tickイベントでどうすればいいですか?
timer1 tick イベントの更新コード:
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 間隔を、作成時のアニメーションと同じ速度に設定しました。アニメーション速度は 80ms なので、timer1 も 80ms に設定されています。
それでも、80msごとにpictureBoxの画像を取得する代わりに、同じ画像を取得または保存しています。同じ画像が5枚。