【发布时间】:2019-03-21 02:28:15
【问题描述】:
如何在将精灵加载到 SDL_Surface 后通过更改 alpha 将精灵的背景颜色更改为透明。 SDL 中是否有任何函数使用填充类型的算法并将具有给定颜色的所有像素更改为外部透明。如果使用相同的颜色,我不希望它发生在精灵的边框内。
示例图片:
我想在使用 SDL_BlitSurface 在窗口表面上对它进行 blit 之前将背景蓝色设为透明。
【问题讨论】:
-
我认为您可以使用
SDL_SetColorKey()- wiki.libsdl.org/SDL_SetColorKey 执行此操作,但我不知道具体该怎么做,而且文档也没有定论。 -
SDL_SetColorKey() 如果背景颜色未包含在我的任何精灵的调色板中,则有效。我认为我的大多数精灵都没有它,对于那些有的,我会改变一个小的值并使用它。
-
您不能只编辑基础图像以具有 alpha 通道和透明背景吗?
-
你不能“离线”更改或复制和替换图像吗(即:在开发过程中,而不是在游戏中)?