作者:广佛笑嘻嘻_229 | 来源:互联网 | 2024-10-28 17:20
在实现将PictureBox中的图片保存到本地的功能时,遇到了两个主要问题。首先,`mypicture.Save(path)`方法经常抛出“参数无效”的异常,但不清楚具体原因。其次,代码中可能存在其他潜在的问题需要解决。本文将探讨这些问题的可能原因,并提供相应的解决方案,以确保图片能够成功保存到指定路径。
实现的功能是要将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;
}
}
7 个解决方案
string path = dlg_mysave.FileName;
要检查有没有写过后缀
picbox_show.Image.Dispose();
这句话的问题 这时候mypicture.Save(path );
mypicture已经为null了
注意引用类型传的是地址 你释放那个的资源等于释放了这个的资源
不释放不行啊,picturebox 中图片资源被锁定,无法复制也无法保存,只好释放了。
怎么才能在释放前,把它拷到另一个image文件中呢?
如果去掉dispose 就会发生GDI+ 一般性错误,何解?