有没有办法检查.NET中的Bitmap是否为空?

时间:2011-11-14 20:10:27

标签: .net bitmap drawing delphi-prism

我正在尝试检查位图对象,看它是设置还是空。似乎.NET没有这个功能。我查看了MSDN库站点和stackoverflow,并且很少提及与.NET相关的内容。在.NET中有没有其他方法可以做到这一点?

当TBitmaap不包含任何图像时,其Empty属性设置为True

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您对位图的唯一选择是它是实例化的还是空的,并且通过阅读注释和您的答案,它会让您感到困惑。

你真的只需要检查位图是否为空,我认为,相当于你所说的语言是空的:

private Bitmap _bmp;

private void button1_Click(object sender, EventArgs e) {
  if (_bmp == null)
    _bmp = new Bitmap(@"c:\example.bmp");
}

你可以用它来扩展它,如下所示:

public static class MyExensions {
  public static bool IsEmtpy(this Bitmap bitmap) {
    return (bitmap == null);
  }
}

这会把你的代码变成这样:

private void button1_Click(object sender, EventArgs e) {
  if (_bmp.IsEmtpy())
    _bmp = new Bitmap(@"c:\example.bmp");
}

答案 1 :(得分:0)

如果我错了,请纠正我。

来自Delphi win32,我知道你可以创建一个位图对象并稍后设置其图像属性如下。

Bitmap:TBitmap;
Bitmap := TBitmap.Create;
Bitmap.LoadFromFile('c:\example.bmp');

在这种情况下,您无法检查Bitmap对象是null还是nil。您需要实际检查图像属性是设置还是空。

就.NET而言,当您创建位图对象时,必须将图像作为参数传递给其构造函数。这意味着构造函数实例化并设置其图像。您可以检查图像分辨率或宽度和高度是否设置,如Henk Holterman指出的那样。

    image1 = new Bitmap(@"C:\Documents and Settings\All Users\Documents\My Music\music.bmp", true);