2012-09-23 41 views
2

我有一個32位CBitmap緩衝區,其中我AlphaBlend的東西。然而,我想知道是否有辦法「完全清除」CBitmap的矩形區域(例如,將特定區域中像素的所有Alpha值設置爲0或完全清除區域)。winapi - 清除CBitmap的一個區域

我無法使用GDI +!

+1

你的意思是不同於['FillRect'](http://msdn.microsoft.com/en-us/library/windows/desktop/dd162719.aspx)或['Rectangle'](http:// msdn.microsoft.com/en-us/library/windows/desktop/dd162898.aspx)?如果是這樣,這可能有助於更多地瞭解你想要完成的事情。 –

+0

我需要Alpha混合功能,所以我可以清除矩形 – user965369

+0

改爲使用''Bitmap類。您可以使用Graphics :: FromImage()創建一個Graphics實例,並使用包含Alpha通道的32位顏色繪製位圖。 –

回答

1

沒有「清除」位圖這樣的事情。你只是改變像素的顏色。如果將「清除」定義爲純黑色,則將像素設置爲黑色。最簡單的方法是使用CDC::FillRect

+0

當然,但是會設置alpha值嗎? – user965369

+0

FillRect將覆蓋像素;沒有混合進行。由此產生的像素將完全像它們在畫筆中一樣。 – tenfour

+0

但是,FillRect會用這些像素的Alpha值來覆蓋?只是0? – user965369