gpt4 book ai didi

c# - 在winform中保存图像时参数无效异常

转载 作者:太空宇宙 更新时间:2023-11-03 22:18:11 27 4
gpt4 key购买 nike

我收到一个参数无效的异常..保存图像时

这是我保存图片的代码

if (!File.Exists(pictureBox1.Tag.ToString()))
{
Image image = pictureBox1.Image;
image.Save(pictureBox1.Tag.ToString(), ImageFormat.Jpeg);
}
else
{
string delStr = pictureBox1.Tag.ToString();
pictureBox1.Image.Dispose();
File.Delete(delStr);
Image image = pictureBox1.Image;
image.Save(delStr, ImageFormat.Jpeg);
pictureBox1.Image = Image.FromFile(delStr);
}

最佳答案

在您的 else 分支中,您首先调用 Dispose()在您的 Image 上,然后您尝试保存它。这不可能行得通,因为:

The Dispose method leaves the Image in an unusable state.

也许你想做:

string delStr = pictureBox1.Tag.ToString();
File.Delete(delStr);
Image image = pictureBox1.Image;
image.Save(delStr, ImageFormat.Jpeg);
image.Dispose();
pictureBox1.Image = Image.FromFile(delStr);

但这仍然是从刚刚保存到的文件中重新加载 Image,所以它不是很有用。您可能想尝试类似的方法:

string filename = pictureBox1.Tag.ToString();
if (File.Exists(filename) {
File.Delete(filename);
}
pictureBox1.Image.Save(filename, ImageFormat.Jpeg);

但话说回来,Image.Save()无论如何都会覆盖文件......所以你只需要做:

pictureBox1.Image.Save(pictureBox1.Tag.ToString(), ImageFormat.Jpeg);

关于c# - 在winform中保存图像时参数无效异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4245353/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com