Introduction
This is a simple C# application that can open and view images, and show the images one by one in a slide show. The purpose of this article is for a beginner to know how to create an image slide show using timers, in C#.
Using the code
To make this application, I used Button
s (for Next, Previous, Open, and Slideshow), a PictureBox
, and a Panel (to contain the PictureBox
). The PictureBox
“SizeMode
” is set to “StretchImage
”.
First, declare these four variables:
private string [] folderFile = null;
private int selected = 0;
private int begin = 0;
private int end = 0;
The first variable is a string array that will be used to keep the path file of the folder. The remaining variables are used to ‘mark’ the beginning of the array, the end of the array, and the selected index of the array, respectively.
private void button2_Click(object sender, System.EventArgs e)
{
if(folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
string [] part1=null, part2=null, part3=null;
part1 = Directory.GetFiles(folderBrowserDialog1.SelectedPath,"*.jpg");
part2 = Directory.GetFiles(folderBrowserDialog1.SelectedPath,"*.jpeg");
part3 = Directory.GetFiles(folderBrowserDialog1.SelectedPath,"*.bmp");
folderFile = new string[part1.Length + part2.Length + part3.Length];
Array.Copy(part1,0,folderFile,0,part1.Length);
Array.Copy(part2,0,folderFile,part1.Length,part2.Length);
Array.Copy(part3,0,folderFile,part1.Length + part2.Length,part3.Length);
selected = 0;
begin = 0;
end = folderFile.Length;
showImage(folderFile[selected]);
button1.Enabled = true;
button3.Enabled = true;
button4.Enab led = true;
}
}
If the FolderBrowserDialog
result is ‘OK’, then get all the JPG, JPEG, and BMP files on the folder and copy them to the fileFolder
array. Then, show the images by calling showImage()
.
private void showImage(string path)
{
Image imgtemp = Image.FromFile(path);
pictureBox1.Width = imgtemp.Width / 2;
pictureBox1.Height = imgtemp.Height / 2;
pictureBox1.Image = imgtemp;
}
The PictureBox
width and height are divided with 2 to show the images half their original size.
private void prevImage()
{
if(selected == 0)
{
selected = folderFile.Length - 1;
showImage(folderFile[selected]);
}
else
{
selected = selected - 1; showImage(folderFile[selected]);
}
}
private void nextImage()
{
if(selected == folderFile.Length - 1)
{
selected = 0;
showImage(folderFile[selected]);
}
else
{
selected = selected + 1; showImage(folderFile[selected]);
}
}
To show the next and previous images, simply move the selected array mark to the next index or to previous index, respectively.
private void timer1_Tick(object sender, System.EventArgs e)
{
nextImage();
}
private void button4_Click(object sender, System.EventArgs e)
{
if(timer1.Enabled == true)
{
timer1.Enabled = false;
button4.Text = "<< START Slide Show >>";
}
else
{
timer1.Enabled = true;
button4.Text = "<< STOP Slide Show >>";
}
}
For the slide show function, call nextImage()
at the timer1_tick
, then just set Enabled
to true
or false
.
Conclusion
It is very easy to open, show, and slide show images. We just need to use FolderBrowserDialog
and Timer
and C# 2.0.
I hope this article is useful for everyone. Any comments are welcome!