当我将图片上传到文件夹时,如何添加案例?

How can I add a case, when I uploads a picture to a folder?

我想制作一个图片库,我可以在其中将图片上传到文件夹,并在我的图片库中查看它们。目前我正在使用 switch 语句来更改图像,但我不知道如何将上传的图像添加到图库(使用我的图像路径向 switch 语句添加一个新案例)

ImageChanger

private void ChangeImage(int num)
    {
        switch (num)
        {
            case 1:
                    Images.Image = Properties.Resources.wp;
                    imageTxt.Text = "Nice mountain";
                break;
            
            case 2:
                    Images.Image = Properties.Resources.wp1;
                    imageTxt.Text = "Nice mountain";
                break;
            
            case 3:
                    Images.Image = Properties.Resources.wp2;
                    imageTxt.Text = "Nice";
                break;
            
            case 4:
                    Images.Image = Properties.Resources.wp3;
                    imageTxt.Text = "Cool";
                break;
            
            case 5:
                    Images.Image = Properties.Resources.wp4;
                    imageTxt.Text = "Damn";
                break;

            case 6:
                    Images.Image = Properties.Resources.wp5;
                    imageTxt.Text = "Okay okay";
                break;

            case 7:
                    Images.Image = Image.FromFile(@"C:\Users\....\Resources\tree.jpg");
                    imageTxt.Text = "Okay okay";
                break;
        }
    }

保存 N 个上传图像

    private void ImageUpload_Click(object sender, EventArgs e)
    {
        OpenFileDialog open = new OpenFileDialog();
        open.Filter = "Image Files(*.jpg; *.jpeg; *.gif; *.png;)| *.jpg; *.jpeg; *.gif; *.png;";
        if (open.ShowDialog() == DialogResult.OK)
        {
            ImgDirectory.Text = open.FileName;
            picPreview.Image = new Bitmap(open.FileName);
        }
    }

    private void Save_Click(object sender, EventArgs e)
    {
        File.Copy(ImgDirectory.Text, Path.Combine(@"C:\Users\....\Resources\", Path.GetFileName(ImgDirectory.Text)));
        Update();
    }

你最好用别的方法。比如使用 Collections

public class UploadedImage
{
  public UploadImage(string inputPath, string inputName){
    imagePath = inputPath;
    imageName = inputName
  }
  string imagePath { get; set; }
  string imageName { get; set; }
}

声明它

public List<UploadedImage> yourImages ;

将可用图像分配给 yourImages

yourImages = new List<UploadedImage>();
yourImages.Add(new UploadImage("wp", "Nice mountain"));
yourImages.Add(new UploadImage("wp1", "Nice mountain"));
/* ... */

在您的 Upload 函数中,将最近上传的图片添加到 yourImages

yourImages.Add(new UploadImage(Path.Combine(@"C:\Users\....\Resources\", Path.GetFileName(ImgDirectory.Text)), ImageName);

我的解决方案

嘿,我想通了!

我刚刚用图像创建了一个数组。 像这样:string[] images = Directory.GetFiles(@"C:\Users\....\Resources");

并添加了一个计数器:private int counter = 0;

在我的“下一张照片和上一张照片按钮”上,我只是这样做了:

private void Next_Click(object sender, EventArgs e)
    {
        counter++;
        if (images.Length == 0) return;

        if (counter > imgAmount + -1) counter = 0;
        var image = Image.FromFile(images[counter]);
        Images.Image = image;

        CurrentImg.Text = counter+1 + "/" + imgAmount.ToString();
    }