2012-05-17 63 views
1

我知道整個我怎樣才能得到一個轉換Graphics對象爲位圖(或訪問它作爲一個位圖)

Bitmap bmp = new Bitmap(100,100) ; 
Graphics graphics = Graphics.FromImage(bmp) ; 

但是,這是不是我需要做的。基本上我想要做的是稍微修改屏幕上繪製的東西(這是一箇中間有一條線的矩形)。我需要改變矩形的背景(我可以使用像素比較或其他類似的方法)。

如果我能以某種方式將它變成一個位圖。沒有辦法(我可以告訴得到/設置/修改)像素級別上的圖形對象。

+0

你想改變位圖圖像的背景顏色? –

+0

我很抱歉,我不能說清楚,我需要更改已經繪製到圖形對象的矩形的背景。 –

回答

0

你可以做到這一點使用一個for循環,像這樣:

for(int i = 0; i < bmp.Width; i++) 
{ 
    for(int j = 0; j < bmp.Height; j++) 
    { 
     var pixel = bmp.GetPixel(i, j); 
     //do stuff with pixel here :) 
    } 
} 

編輯:看到提拉克的評論後,如果性能是你的一個問題,那麼他是對的! (謝謝,我不知道LockBits!+1)的一些例子可以在MSDN BitmapData Class page找到。但是,如果這看起來很複雜,上面的方法應該做的伎倆:)

+1

這很慢。爲了更快的復讀,lockBits更好地使用P/Invoke – Tilak

0

一旦你使用圖形,只保存位圖 - 圖形所做的更改是對位圖。

相關問題