急,Image.Save 总是参数无效!

csbmm 2009-06-01 01:26:57
实现的功能是要将Pictrue Box 中的图片另存到本地,主要问两个问题,第一个问题是mypicture.Save(path );总是报“参数无效”的错误,我不明白究竟错在哪里。第二个问题是,代码中定义的image 对象,用完是要写代码来Dispose,还是由CLR来自动释放?




private void btn_save_as_Click(object sender, EventArgs e)
{
//名称
dlg_mysave.Title = "图片另存为";
//保存格式
dlg_mysave.Filter = "JPG文件(*.jpg)|*.jpg|BMP文件(*.bmp)|*.bmp|TFT文件(*.tft)|*.tft|所有文件(*.*)|*.*";
//索引
dlg_mysave.FilterIndex = 2;

if (dlg_mysave.ShowDialog() == DialogResult.OK)
{
string path = dlg_mysave.FileName;
Image mypicture = picbox_show.Image;
picbox_show.Image.Dispose();
mypicture.Save(path ); picbox_show.Image = mypicture;

}

}
...全文
713 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
csbmm 2009-06-01
  • 打赏
  • 举报
回复
如果去掉dispose 就会发生GDI+ 一般性错误,何解?
csbmm 2009-06-01
  • 打赏
  • 举报
回复
不释放不行啊,picturebox 中图片资源被锁定,无法复制也无法保存,只好释放了。

怎么才能在释放前,把它拷到另一个image文件中呢?
whyabc 2009-06-01
  • 打赏
  • 举报
回复
up
fei1tian1 2009-06-01
  • 打赏
  • 举报
回复
注意引用类型传的是地址 你释放那个的资源等于释放了这个的资源
fei1tian1 2009-06-01
  • 打赏
  • 举报
回复
picbox_show.Image.Dispose();
这句话的问题 这时候mypicture.Save(path );
mypicture已经为null了
wartim 2009-06-01
  • 打赏
  • 举报
回复
string path = dlg_mysave.FileName;
要检查有没有写过后缀
csbmm 2009-06-01
  • 打赏
  • 举报
回复
上面的代码有点乱,重新贴一下

private void btn_save_as_Click(object sender, EventArgs e)
{
//名称
dlg_mysave.Title = "图片另存为";
//保存格式
dlg_mysave.Filter = "JPG文件(*.jpg)|*.jpg|BMP文件(*.bmp)|*.bmp|TFT文件(*.tft)|*.tft|所有文件(*.*)|*.*";
//索引
dlg_mysave.FilterIndex = 2;

if (dlg_mysave.ShowDialog() == DialogResult.OK)
{
string path = dlg_mysave.FileName;
Image mypicture = picbox_show.Image;
picbox_show.Image.Dispose();
mypicture.Save(path );
picbox_show.Image = mypicture;

}

}

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧