Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

A Simple Image Slide Show

0.00/5 (No votes)
21 Jan 2008 2  
A simple image slide show for beginners.

imageviewer

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 Buttons (for Next, Previous, Open, and Slideshow), a PictureBox, and a Panel (to contain the PictureBox). The PictureBoxSizeMode” 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!

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here