我想設置一個圖像有一個透明的背景,但我不想用透明度替換一個特定顏色的所有像素。如何在不使用Bitmap.MakeTransparent()的情況下將圖像設置爲在C#中具有透明背景?
更具體地,該圖像是一個文件夾,通過IShellItemImageFactory.GetImage獲得的縮略圖圖像。這給了我一個位圖,如Windows資源管理器縮略圖視圖中所顯示,但背景是純白色的。
我可以用它Bitmap.MakeTransparent,而且在大多數情況下工作,但在縮略圖中包含白色本身的任何情況下(例如,包含圖像的文件夾,其中包括白兩種顏色)。
順便說一句,這是超過10年作爲一個開發者第一次,谷歌上搜索我的問題後,我還沒有找到答案的任何地方,我實際上已經不得不問我自己。 (我想這意味着我只是剷平了!yippee的,我現在是一個2級開發者...)
可能這可以幫助你:http://www.c-sharpcorner.com/UploadFile/mahesh/DrawTransparentImageUsingAB10102005010514AM/DrawTransparentImageUsingAB.aspx –
你想去哪裏來顯示圖像(如,一個TreeView,按鈕... )?你是什麼意思*,但在任何情況下,縮略圖圖像包含白色*? –
我已經編寫了一個圖像查看器應用程序,並在我的用戶控件的flowlayoutpanel中顯示縮略圖。當鼠標移過縮略圖時,我繪製一個漸變填充背景(不同的顏色取決於所選或熱點)。問題是,如果文件夾縮略圖圖像中包含白色,那麼該部分現在(不正確)是透明的,並且我的縮略圖繪製處理程序將使用漸變來繪製圖像的該部分(如預期的那樣,因爲圖像「說」該部分是透明的)。我希望現在清楚了嗎? –