我点击按钮上传照片。当我取消照片选择时,程序会抛出异常。
这是我的代码:
private void button1_Click(object sender, EventArgs e)
{
Image<Bgr, byte> img = new Image<Bgr, byte>(Islem.getFileName());
ımageBox1.Image = img;
}
class Islem
{
public static string getFileName()
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Images (*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|" + "All files (*.*)|*.*";
if (ofd.ShowDialog() == DialogResult.OK)
{
return ofd.FileName;
}
return "";
}
}
如何解决这种情况?
答案 0 :(得分:0)
当用户取消对话框时,getFileName
函数返回一个空字符串。因此,当您尝试从不存在的路径(即空字符串)加载图像时,会出现异常。如果您阅读了异常消息,您可以自己解决。
您可以这样做:
private void button1_Click(object sender, EventArgs e)
{
string imgFilePath = Islem.getFileName();
if (!string.IsNullOrEmpty(imgFilePath))
{
Image<Bgr, byte> img = new Image<Bgr, byte>(imgFilePath);
ımageBox1.Image = img;
}
}
如果返回的字符串不为空,那只会使用文件路径(即加载图像)。
或者,您可以检查文件是否存在:
if (System.IO.File.Exists(imgFilePath)) { //use it to load the image }