2011-11-14 172 views
1

我想檢查位圖對象,看它是否設置或爲空。看來.NET沒有這個功能。我已經看過MSDN庫網站和stackoverflow,並且很少提及與.NET相關的這一點。有沒有其他的方式來做到這一點在.NET中?有沒有辦法在.NET中檢查Bitmap是否爲空?

當TBitmaap不包含任何圖像的空屬性設置爲True

任何幫助將不勝感激。

+1

你的意思是空的?空引用? – Oded

+2

你能在這種情況下定義空嗎?對你來說是完全透明的圖像嗎?或者你只是想知道對象是否爲空? –

+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"); 
} 

您可以擴展出來的,像這樣:

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"); 
} 
0

糾正我,如果我錯了。

來自德爾福win32,我知道你可以創建一個位圖的對象,並在稍後設置其圖像屬性,如下所示。

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

在這種情況下,您不能只檢查以查看Bitmap對象是否爲空或零。您需要實際檢查圖像屬性是設置還是空的。至於.NET,當你創建一個位圖的對象時,你必須將圖像作爲參數傳遞給它的構造函數。這意味着構造函數實例化並設置其圖像。 Henk Holterman指出,你可以檢查圖像分辨率,寬度和高度是否設置。

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

我認爲如果構造函數無法加載文件,它會拋出一個異常,所以你不會有一個對象實例來訪問這些屬性。 –

相關問題