Click here to Skip to main content
16,018,460 members
Articles / Desktop Programming / Windows Forms

A Simple Image Slide Show

Rate me:
Please Sign up or sign in to vote.
2.84/5 (17 votes)
21 Jan 2008CPOL1 min read 173.6K   10.4K   41   14
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:

C#
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.

C#
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().

C#
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.

C#
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.

C#
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, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Junior)
Indonesia Indonesia
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
GeneralMy vote of 3 Pin
Member 1051355325-Mar-14 15:05
Member 1051355325-Mar-14 15:05 
QuestionThanks and a little thing Pin
Orions6820-Jul-13 10:43
Orions6820-Jul-13 10:43 
QuestionAn even simpler slideshow Pin
K Turner24-Jan-13 22:17
K Turner24-Jan-13 22:17 
Questiongood example Pin
jumput23-Jan-13 0:31
jumput23-Jan-13 0:31 
GeneralMy vote of 5 Pin
alcitect18-Nov-12 23:02
alcitect18-Nov-12 23:02 
GeneralMy vote of 3 Pin
rkmeenajaipur1-Sep-11 22:44
rkmeenajaipur1-Sep-11 22:44 
GeneralMy vote of 1 Pin
jalil200830-May-11 5:51
jalil200830-May-11 5:51 
GeneralThanks Pin
rajamahan25-Jun-10 8:30
rajamahan25-Jun-10 8:30 
GeneralThankS! Pin
rajamahan25-Jun-10 8:21
rajamahan25-Jun-10 8:21 
GeneralNice but... Pin
jinfrics28-Apr-08 19:39
jinfrics28-Apr-08 19:39 
GeneralRe: Nice but... Pin
Wenderson18-Jul-08 10:44
Wenderson18-Jul-08 10:44 
GeneralRe: Nice but... Pin
Xequence31-Jan-09 12:05
Xequence31-Jan-09 12:05 
GeneralRe: Nice but... Pin
vidyaputra2-Feb-09 3:21
vidyaputra2-Feb-09 3:21 
Generalhi Pin
Ramzi98765432112-Mar-08 8:10
Ramzi98765432112-Mar-08 8:10 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.