覆盖/更新文件夹中的现有图像文件

时间:2019-03-18 08:01:20

标签: c# winforms

我正在使用网络摄像头捕获图像并将其放置到图片框,并将图像保存到我的项目文件夹中,并获取图像路径,然后保存到sql数据库。问题是我不知道如何更新/覆盖现有文件

注意:当我单击单元格时,我的数据将绑定到datagridview中,该图像将以另一种形式检索,因此基本上是基于ID的。

这就是我试图实现的目标

private void BtnOk_Click(object sender, EventArgs e)
    {
        if (picCapturedImage.Image != null)
        {
            using (var bitmap = new Bitmap(picCapturedImage.Image))
            {
                bitmap.Save(Common.CustomerPath, ImageFormat.Png);
                _updCustomer.picCustomerImage.Image = Image.FromFile(Common.CustomerPath);
            }
        }
        Close();
    }

当我运行此代码时,它将替换User.Png的图像,而不是捕获的图像(Image1,Image2等)
当用户不想浏览或捕获图像时,User.Png是我的默认图像

这是将图像保存在项目文件夹中的代码

我使用循环来避免覆盖项目文件夹中的图像,所以当我保存图像时

  

Image0,Image1,Image2等

if (picCapturedImage.Image != null) {
            using (var bitmap = new Bitmap(picCapturedImage.Image))
            {
                for (int i = 0; i < int.MaxValue; i++)
                {
                    var fileName = $@"..\..\Resources\Photos\Image{i}.png";

                    if (!File.Exists(fileName)) {
                        bitmap.Save(fileName, ImageFormat.Png);
                        Common.CustomerPath = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $@"..\..\Resources\Photos\Image{i}.png"));
                        _regCustomer.picCustomerImage.Image = Image.FromFile(Common.CustomerPath);
                        break;
                    }

                }
            }
        }
        Close();

这是我保存路径的代码

 public class Common
 {
    public static string CustomerPath = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\..\Resources", "User.png"));
 }

这是检索图像路径的代码

_updCustomer.picCustomerImage.Image = Image.FromFile(customer.ImagePath);

0 个答案:

没有答案