【问题标题】:Save pictureBox image to openFileDialog filename将图片框图像保存到 openFileDialog 文件名
【发布时间】:2012-01-27 18:26:31
【问题描述】:

我正在尝试将图像保存到已知路径:openFileDialog 的文件名

但是,我不断收到相同的错误:

“GDI+ 中出现一般错误。” 要么 "值不能为空。参数名称:文件名

我试过这样的东西:

pictureBox1.Image.Save(openFiles.FileName); // gives me "A generic error occurred in GDI+."

还有

 pictureBox1.Image.Save(pictureBox1.ImageLocation); // gives me "Value cannot be null. Parameter name: filename"

基本上,我想做的就是将图像保存到已经建立的路径中。就像在 MSPaint 中打开图像、在其上绘图并保存一样 - 没有出现对话框,它只是保存到 openFileDialog 的路径。

我无法,为了我的一生,弄清楚如何做到这一点!

感谢您的任何帮助!

谢谢!

【问题讨论】:

  • 您必须在您最初加载的位图上调用 Dispose()。这会释放 Image.FromFile() 对文件的锁定。
  • 我试过了,但我仍然得到 Generic GDI+ 错误。 :S

标签: c# winforms image picturebox openfiledialog


【解决方案1】:

您需要做的就是手动提供文件名并将其存储在某个字段中:

string _imagePath = @"C:\image.jpg";

void Save()
{
   pictureBox1.Image.Save(_imagePath);
}

【讨论】:

  • 我试过了,还是不行:string _imagePath = pictureBox1.ImageLocation;图片框1.Image.Save(_imagePath);
  • 为什么选择 ImageLocation 属性?它是否被初始化为任何值?如果没有,请不要对引发 ArgumentNullExceptions 感到惊讶。
  • 到目前为止,我已经尝试了很多不同的东西。我想 ImageLocation 会给我我想要的。我想将当前pictureBox的图片保存到openFileDialog上次打开的路径中。
  • 加载图片时将opendialog的FileName属性赋值给_imagePath字段。
  • 关闭用于读取图像的MemoryStream以避免GDI+错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-22
  • 2013-05-31
  • 1970-01-01
  • 2011-05-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多