Как проверить, является ли растровое изображение C # действительным, прежде чем добавлять его в графический ящик - PullRequest
1 голос
/ 29 января 2010

Как я могу проверить, является ли изображение C # System.Drawing.Bitmap допустимым, прежде чем добавлять его в графический ящик?

Ответы [ 3 ]

3 голосов
/ 29 января 2010

Это довольно просто. Если вы можете загрузить изображение перед тем, как назначить его для графического блока, то вы достаточно доказали, что изображение действительно и что пользователю есть на что посмотреть. Декодеры изображений GDI + очень тщательно проверяют содержимое файла. Таким образом:

    private void button1_Click(object sender, EventArgs e) {
        if (openFileDialog1.ShowDialog(this) != DialogResult.OK) return;
        try {
            Bitmap bmp = new Bitmap(openFileDialog1.FileName);
            if (pictureBox1.Image != null) pictureBox1.Image.Dispose();
            pictureBox1.Image = bmp;
        }
        catch (Exception ex) {
            MessageBox.Show(ex.Message, "Could not load image");
        }
    }
2 голосов
/ 29 января 2010
  1. Определить «действительный»

  2. написать функцию проверки

  3. назовите его на картинке

  4. если оно прошло, загрузите изображение, в противном случае

1 голос
/ 29 января 2010

Возможно, вам следует проверить это свойство RawFormat класса System.Drawing.Bitmap, как показано здесь в MSDN. Если изображение пустое, это вызовет исключение, и вы можете перехватить его в этом случае.

...