我想设置一个图像有一个透明的背景,但我不想用透明度替换一个特定颜色的所有像素。如何在不使用Bitmap.MakeTransparent()的情况下将图像设置为在C#中具有透明背景?
更具体地,该图像是一个文件夹,通过IShellItemImageFactory.GetImage获得的缩略图图像。这给了我一个位图,如Windows资源管理器缩略图视图中所显示,但背景是纯白色的。
我可以用它Bitmap.MakeTransparent,而且在大多数情况下工作,但在缩略图中包含白色本身的任何情况下(例如,包含图像的文件夹,其中包括白两种颜色)。
顺便说一句,这是超过10年作为一个开发者第一次,谷歌上搜索我的问题后,我还没有找到答案的任何地方,我实际上已经不得不问我自己。 (我想这意味着我只是铲平了!yippee的,我现在是一个2级开发者...)
可能这可以帮助你:http://www.c-sharpcorner.com/UploadFile/mahesh/DrawTransparentImageUsingAB10102005010514AM/DrawTransparentImageUsingAB.aspx –
你想去哪里来显示图像(如,一个TreeView,按钮... )?你是什么意思*,但在任何情况下,缩略图图像包含白色*? –
我已经编写了一个图像查看器应用程序,并在我的用户控件的flowlayoutpanel中显示缩略图。当鼠标移过缩略图时,我绘制一个渐变填充背景(不同的颜色取决于所选或热点)。问题是,如果文件夹缩略图图像中包含白色,那么该部分现在(不正确)是透明的,并且我的缩略图绘制处理程序将使用渐变来绘制图像的该部分(如预期的那样,因为图像“说”该部分是透明的)。我希望现在清楚了吗? –