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);
}
展开
 我来答
leafly0719
2013-02-10 · TA获得超过117个赞
知道答主
回答量:64
采纳率:0%
帮助的人:50.5万
展开全部
这个问题的错误其实很好判断。你的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);
}
保存方法就可以用你自己写的那个了。
runjiu
2013-02-09 · TA获得超过328个赞
知道小有建树答主
回答量:715
采纳率:50%
帮助的人:240万
展开全部
仔细分析一下,如果报的是GDI错误,可能是pictureBox1.Image.Save导致的,按F9设置一下断点,看看filename文件名是否有问题,否则,就是图像的问题了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式