是否可以检查.NET中的位图是否为空?

问题描述 投票:1回答:2

我正在尝试检查位图对象,以查看它是否设置为空。似乎.NET没有该功能。我看过MSDN库站点和stackoverflow,关于.NET的内容很少提及。 .NET中还有其他方法吗?

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

任何帮助将不胜感激。

.net bitmap drawing delphi-prism
2个回答
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 IsEmpty(this Bitmap bitmap) {
    return (bitmap == null);
  }
}

这会使您的代码变成这个:

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

0
投票

如果我错了,请纠正我。

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

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

在那种情况下,您不能只检查Bitmap对象是否为null或nil。您需要实际检查image属性是否设置为空。

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

    image1 = new Bitmap(@"C:\Documents and Settings\All Users\Documents\My Music\music.bmp", true);
© www.soinside.com 2019 - 2024. All rights reserved.