.net “完善”;Bitmap.MakeTransparent();α混合法

.net “完善”;Bitmap.MakeTransparent();α混合法,.net,image,bitmap,alphablending,alpha-transparency,.net,Image,Bitmap,Alphablending,Alpha Transparency,我正在使用著名的微软“WindowsAPI代码包”示例从文件中提取Shell缩略图 示例返回缩略图的位图,问题是当该方法返回一个大图标或动态生成的文件夹缩略图时,这些缩略图包含透明度信息,并且天真地将该位图投射/转换为图像(例如在图片框中显示时),删除透明度信息并使背景变黑 在位图上调用标准的.net方法MakeTransparent()可以部分解决此问题,因为它只被视为一种颜色(黑色)是透明的,并且不考虑不同的混合级别 转换保留此alpha通道的位图的精确方法是什么?如果没有简单的方法,我可能

我正在使用著名的微软“WindowsAPI代码包”示例从文件中提取Shell缩略图

示例返回缩略图的位图,问题是当该方法返回一个大图标或动态生成的文件夹缩略图时,这些缩略图包含透明度信息,并且天真地将该位图投射/转换为图像(例如在图片框中显示时),删除透明度信息并使背景变黑

在位图上调用标准的.net方法MakeTransparent()可以部分解决此问题,因为它只被视为一种颜色(黑色)是透明的,并且不考虑不同的混合级别


转换保留此alpha通道的位图的精确方法是什么?如果没有简单的方法,我可能需要逐像素进行暴力分析?如果是,具体应如何操作?

“将此位图转换为图像”。位图是图像,不要转换任何内容。发布一段代码片段,让人们知道你真正在说什么。@HansPassant,Image是Bitmap的基类,我的意思是当我将此位图添加到图像列表或仅在图片框中显示它时,就这么简单,我不认为真的需要任何代码,但thx更正了它。对不起,我的意思是位图是图像的一个实现。