加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在不使用Bitmap.MakeTransparent()的情况下将图像设置为在C#

发布时间:2020-12-15 17:22:26 所属栏目:百科 来源:网络整理
导读:我想将图像设置为具有透明背景,但我不想用透明度替换特定颜色的所有像素. 更具体地说,图像是文件夹的缩略图图像,通过IShellItemImageFactory.GetImage获得.这给了我一个位图,如Windows资源管理器缩略图视图中所示,但背景为纯白色. 我可以在它上面使用Bitmap.
我想将图像设置为具有透明背景,但我不想用透明度替换特定颜色的所有像素.

更具体地说,图像是文件夹的缩略图图像,通过IShellItemImageFactory.GetImage获得.这给了我一个位图,如Windows资源管理器缩略图视图中所示,但背景为纯白色.

我可以在它上面使用Bitmap.MakeTransparent,这在大多数情况下都适用,但在任何情况下缩略图图像都包含白色本身(例如,包含图像的文件夹,包括白色).

很明显,这是10年来作为开发人员的第一次,在谷歌搜索我的问题后,我没有在任何地方找到答案,我实际上不得不自己问一下. (我认为这意味着我只是升级了!Yippee,我现在是二级开发人员…)

解决方法

使用泛光填充算法根据需要从OUTSIDE填充相同颜色的像素.它类似于Photoshop中的魔杖.

http://en.wikipedia.org/wiki/Flood_fill

我会做的是用一些不起眼的颜色填充(Magenta总是为我做),然后用透明替换那个颜色(我不知道填充透明像素是否可行).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读