【问题标题】:How to check if a C# Bitmap is valid before adding it to a picturebox如何在将 C# 位图添加到图片框之前检查它是否有效
【发布时间】:2010-01-29 17:00:14
【问题描述】:

如何在将 C# System.Drawing.Bitmap 图像添加到图片框之前检查其是否有效?

【问题讨论】:

  • 图片来源是什么?您是从文件/资源​​/流中加载它吗?
  • 能否请您添加更多详细信息,例如您从哪里获得位图实例?从文件创建?
  • 嗨!我正在从网络上加载它!一张jpeg图片!但有时那是空的^^。
  • 您能详细说明“空”是什么意思吗?

标签: c# image bitmap picturebox


【解决方案1】:

这很简单。如果您可以在将图像分配给图片框之前加载它,那么您已经充分证明该图像是有效的并且用户可以查看某些内容。 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】:
    1. 定义“有效”

    2. 编写验证函数

    3. 在图片上调用

    4. 如果通过则加载图片,否则不加载

    【讨论】:

      【解决方案3】:

      也许您应该检查“System.Drawing.Bitmap”类的“RawFormat”属性,如 MSDN 上的here 所示。如果图像为空,则会抛出异常,您可以在这种情况下捕获它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-08
        • 1970-01-01
        相关资源
        最近更新 更多