2015-06-28 61 views
-3
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using System.IO; 

namespace Player_Manager 
{ 
    public partial class ScreenShotsPlayer : Form 
    { 
     FileInfo[] images; 
     DirectoryInfo di1; 
     int current = 0; 

     public ScreenShotsPlayer() 
     { 
      InitializeComponent(); 

      di1 = new DirectoryInfo(@"e:\screenshots"); 
      images = di1.GetFiles("*.bmp"); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      timer1.Start(); 
     } 

     private void timer1_Tick(object sender, EventArgs e) 
     { 
      if(pictureBox1.Image!=null) 
     { 
      var img = pictureBox1.Image; 
      pictureBox1.Image = null;  
      pictureBox1.Image.Dispose(); 
     } 

     current = (current >= images.Length - 1) ? 0 : ++current; 
     pictureBox1.Image = new Bitmap(images[current].FullName); 
     pictureBox1.Refresh(); 
     } 
    } 
} 

我在設計師中有一個計時器。當它設置爲100ms時,速度太快了。 當它設置爲1000ms,因爲它現在太慢了。播放圖像時,我應該將定時器間隔設置爲「正常速度」的速度是多少?

我有1200張圖片,我在pictureBox中玩。我想知道什麼速度應該是正常的速度?

+0

你對我們的期望是什麼樣的答案?嘗試一些計時器延遲並查看哪一個最適合您的需求。 –

+0

人類視覺可以檢測到每一秒鐘的一個幀,所以你可以使用它來使它像一個電影播放器​​。 –

+0

你能否停止使用C標籤來處理C#問題? – Olaf

回答

0

它取決於原始數據的幀速率。

如果你有每秒24幀(標準電視信號),它將是1000/24或約42毫秒。但是這已經不到100了,你說的速度太快了(同時,你很難讓PictureBox始終如此快速地刷新)。如果你不知道你的原始幀速率,你只需要做一些試驗和錯誤,直到你得到正確的東西。