我的建议是给所有的图像加载到一个List<Bitmap>
然后用Timer
改变内部PictureBox
图片:
List<Bitmap> _images = new List<Bitmap>();
int _currentImageIndex = 0;
int CurrentImageIndex
{
get { return _currentImageIndex; }
set {
_currentImageIndex = value;
if (InvokeRequired)
{
Invoke(new MethodInvoker(() => { _pictureBox.Image = _images[_currentImageIndex]; });
}
else
{
_pictureBox.Image = _images[_currentImageIndex];
}
}
}
Bitmap LoadImage(Stream stream)
{
return new Bitmap(stream, false);
}
public void LoadImages(DirectoryInfo dInfo)
{
foreach(FileInfo fInfo in dInfo.GetFiles())
{
if(InvokeRequired)
{
Invoke(new MethodInvoker(() => { _images.Add(LoadImage (fInfo.Open(FileMode.Open))); });
}
else
{
_images.Add(LoadImage (fInfo.Open()));
}
}
}
void WhenTimerTicks(object sender, EventArgs e)
{
if(CurrentImageIndex < _images.Count)
CurrentImageIndex++;
}
现在,所有你需要做的是阅读文件,之后设置你的计时器:
LoadImages(new DirectoryInfo("c:\\Users\\" + Environment.UserName + "\\Desktop\\fireplace"));
Timer t = new Timer();
t.Interval = 1000/25; // 25 FPS
t.Tick += WhenTimerTicks;
t.Start();
使用[Image.FromFile](https://msdn.microsoft.com/en-us/library/system.drawing.image.fromfile(v = vs.110).aspx) –
也可以添加一个'System.Windows.Forms.Timer'后面的图像将切换。 – BladeMight
John Wu,你能展示示例代码吗?我是这样一个noob我不知道如何使用它> _ < – diPokiI