65.9K
CodeProject 正在变化。 阅读更多。
Home

简单的图片幻灯片

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.84/5 (17投票s)

2008年1月21日

CPOL

1分钟阅读

viewsIcon

174591

downloadIcon

10423

一个为初学者准备的简单图像幻灯片播放器。

imageviewer

引言

这是一个简单的 C# 应用程序,可以打开和查看图像,并以幻灯片的形式逐个显示图像。本文的目的是让初学者了解如何使用计时器在 C# 中创建图像幻灯片播放器。

使用代码

为了制作这个应用程序,我使用了Button(用于“下一张”、“上一张”、“打开”和“幻灯片播放”),一个PictureBox,以及一个面板(用于包含PictureBox)。PictureBox的“SizeMode”设置为“StretchImage”。

首先,声明这四个变量

private string [] folderFile = null;
private int selected = 0;
private int begin = 0;
private int end = 0;

第一个变量是一个字符串数组,用于保存文件夹中文件路径。其余变量用于“标记”数组的开头、结尾以及数组的选定索引。

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;
    }
}

如果FolderBrowserDialog的结果是“确定”,那么获取文件夹中的所有 JPG、JPEG 和 BMP 文件,并将它们复制到fileFolder数组中。然后,通过调用showImage()来显示图像。

private void showImage(string path)
{
    Image imgtemp = Image.FromFile(path);
    pictureBox1.Width = imgtemp.Width / 2;
    pictureBox1.Height = imgtemp.Height / 2;
    pictureBox1.Image = imgtemp;
}

PictureBox的宽度和高度除以 2,以显示原始尺寸一半的图像。

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]);
    }
}

要显示下一张和上一张图像,只需将选定的数组标记移动到下一个索引或上一个索引即可。

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 >>";
    }
}

对于幻灯片播放功能,在timer1_tick中调用nextImage(),然后只需将Enabled设置为truefalse即可。

结论

打开、显示和幻灯片播放图像非常简单。我们只需要使用FolderBrowserDialogTimer以及 C# 2.0。

我希望这篇文章对大家有所帮助!欢迎提出任何意见!

© . All rights reserved.