2011-11-14 52 views
1

ビットマップオブジェクトをチェックして、セットされているか空であるかを確認しようとしています。それは.NETはその機能を持っていないようです。私はMSDNのライブラリサイトとstackoverflowを見てきましたが、これは.NETとの関連でほとんど言及されていません。 .NETでこれを行うための他の方法はありますか?.NETでBitmapが空であるかどうかを確認する方法はありますか?

TBitmaapはその空のプロパティは任意の助けが理解されるであろう真の

に設定されているすべての画像が含まれていません。

+1

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

、それは、このにあなたのコードを回すでしょうか?ヌル参照? – Oded

+2

この場合、空を定義できますか?完全に透明なイメージはあなたに空であると見なされますか?または、オブジェクトがnullかどうかを知りたいだけですか? –

+0

@ odedとekonoikビットマップオブジェクトがイメージに設定されているかどうかを表します。 – ThN

答えて

1

あなたの唯一のオプションは、それがインスタンス化またはそのヌルされていることである、とコメントし、あなたの答えを読んでから、あなたがやろうとしているか混乱しています。あなたはそれの外に拡張を行うことができます

private Bitmap _bmp; 

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

:ビットマップは、私が思うに、あなたが言っている言語に相当する、nullであるか、ない場合は、実際には単なるチェックする必要があり

は、空であります、次のように:あなたは空を意味するにはどうすればよい

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

私が間違っている場合は私を修正してください。

デルファイの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); 
+0

ファイルを読み込めなかった場合、コンストラクタが例外をスローすると思いますので、それらのプロパティにアクセスするためのオブジェクトインスタンスはありません。 –

関連する問題