有没有办法让bmps透明?
Posted
技术标签:
【中文标题】有没有办法让bmps透明?【英文标题】:Is there a way to make bmps transparent? 【发布时间】:2013-07-18 18:11:45 【问题描述】:(使用 WinApi)有没有办法:
-
制作透明像素?
不知何故,不是使用透明度,而是让图像动态获取背景颜色和纹理,并用这些纹理填充某些颜色,例如:如果我有一个视频游戏精灵并且它的背景颜色是白色,我能以某种方式获取那些白色像素并用背景颜色/纹理填充它们?
【问题讨论】:
也许吧,但 WinAPI 是一种痛苦的方式。 谷歌“transblt”并获得第一击。 致对我投反对票的人:我能做些什么来改善这个问题? 【参考方案1】:如果您创建 32 位位图,则每个像素的 24 位用于 RGB 值,而额外的 8 位用于 Alpha 通道。只需将 alpha 设置为 0 即可获得完全透明。
在创建使用 24 位或更小的像素的位图时,透明色通常由位图左下角的像素指示。
无论哪种方式,创建透明位图只是等式的一半。创建透明位图本身很容易,但是您必须以透明方式渲染位图。 Win32 API 具有用于此目的的 TransparentBlt()
和 AlphaBlend()
函数,并且有大量在线教程和博客解释如何使用它们。
【讨论】:
以上是关于有没有办法让bmps透明?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法让 IE8 在 `:before` 伪元素上保持不透明度?
有没有办法我可以一直在桌面上绘制一个透明的 WPF 应用程序?