我正在使用网络摄像头捕获图像并将其放置到图片框,并将图像保存到我的项目文件夹中,并获取图像路径,然后保存到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);