c# 不使用SaveFileDialog 保存文件
我现在出现的问题是这样,我想保存pictureBox控件中的图片文件,我想实现的是直接覆盖掉现在已经打开的文件,filename变量在Debug的时候显示的是:“file...
我现在出现的问题是这样,我想保存pictureBox 控件中的图片文件,我想实现的是直接覆盖掉现在已经打开的文件,filename变量在Debug的时候显示的是:“filename = "F:\\实验\\DSC00110.JPG"”,但是报错:GDI+ 中发生一般性错误。求正确方法!
if (pictureBox1.Image != null)
{
//截取原文件名
string filel = filename.Substring(filename.LastIndexOf("\\") + 1);
//往磁盘存放
pictureBox1.Image.Save(filename);
} 展开
if (pictureBox1.Image != null)
{
//截取原文件名
string filel = filename.Substring(filename.LastIndexOf("\\") + 1);
//往磁盘存放
pictureBox1.Image.Save(filename);
} 展开
2个回答
展开全部
这个问题的错误其实很好判断。你的pictureBox在加载图片的时候,肯定用pictureBox1.Image=……来加载的是不是??
你知不知道,这个加载方式,会导致被加载的图片被占用,也就是说这个时候图片是不能移动修改的。懂不?就像你打开一个文本文件并处于编辑状态时,去删除这个文件,系统会提示你该文件被xx程序占用之类的一样。
先说说解决方法:
第一种,先把文件保存到别人地方,或者其他的文件名,然后令pictureBox1.Image=null;之后将刚刚的文件覆盖回去,最后删了这个文件即可。
第二种,使用下面的方法加载图片:
using (System.IO.FileStream fs = new System.IO.FileStream("", System.IO.FileMode.Open))
{
pictureBox.Image = Image.FromStream(fs);
}
保存方法就可以用你自己写的那个了。
你知不知道,这个加载方式,会导致被加载的图片被占用,也就是说这个时候图片是不能移动修改的。懂不?就像你打开一个文本文件并处于编辑状态时,去删除这个文件,系统会提示你该文件被xx程序占用之类的一样。
先说说解决方法:
第一种,先把文件保存到别人地方,或者其他的文件名,然后令pictureBox1.Image=null;之后将刚刚的文件覆盖回去,最后删了这个文件即可。
第二种,使用下面的方法加载图片:
using (System.IO.FileStream fs = new System.IO.FileStream("", System.IO.FileMode.Open))
{
pictureBox.Image = Image.FromStream(fs);
}
保存方法就可以用你自己写的那个了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询