我目前正在开发一个隐写术程序。
问题是,只要用户没有选择图像,就会发生错误。 因此,每次用户选择图像时,我都会决定提示错误消息,但它不起作用。
错误发生在,
Bitmap img = new Bitmap(fileText.Text);
它说,argument exception is unhandled, the path is not of a legal form.
private void encodeBtn_Click(object sender, EventArgs e)
{
if (!string.IsNullOrWhiteSpace(fileText.Text))
{
MessageBox.Show("abc");
return;
}
Bitmap img = new Bitmap(fileText.Text);
for (int i = 0; i < img.Width; i++)
{
for (int j = 0; j < img.Height; j++)
{
Color pixel = img.GetPixel(i, j);
if (i < 1 && j < msgText.TextLength)
{
char letter = Convert.ToChar(msgText.Text.Substring(j, 1));
int value = Convert.ToInt32(letter);
img.SetPixel(i, j, Color.FromArgb(pixel.R, pixel.G, value));
}
if (i == img.Width - 1 && j == img.Height - 1)
{
img.SetPixel(i, j, Color.FromArgb(pixel.R, pixel.G, msgText.TextLength));
}
}
}
答案 0 :(得分:0)
我认为你测试字符串的逻辑是错误的:
if (string.IsNullOrWhiteSpace(fileText.Text))
{
MessageBox.Show("abc");
return;
}
右?因为要显示消息框,如果它为null或空格。另外,我认为空文本框是空字符串,而不是空格。
答案 1 :(得分:0)
您应该检查文件名是否正确以及该文件是否确实存在:
string fileName = fileText.Text;
if(string.IsNullOrWhiteSpace(fileName) || !System.IO.File.Exists(fileName)) {
MessageBox.Show("Wrong file name");
return;
}