Unk*_*ech 36
这应该这样做:
image = pygame.Surface([640,480], pygame.SRCALPHA, 32)
image = image.convert_alpha()
Run Code Online (Sandbox Code Playgroud)
确保颜色深度(32)保持明确设置,否则这将不起作用.
Zoo*_*tor 16
您也可以给它一个颜色键,就像GIF文件透明度一样.这是制作精灵的最常用方法.原始位图具有图稿,并且具有某种颜色作为背景,不会被绘制,这是colorkey:
surf.set_colorkey((255,0,255)) // Sets the colorkey to that hideous purple
Run Code Online (Sandbox Code Playgroud)
blit使用colorkey而不是alpha的表面要快得多,因为它们不需要任何混合数学运算.当SDL表面具有颜色键集时,它使用简单的位掩码,该颜色键实际上没有开销.
你有3种可能性:
设置透明颜色键set_colorkey()
颜色键指定被视为透明的颜色。例如,如果您有一个应该是透明的黑色背景的图像,请设置黑色键:
my_surface.set_colorkey((0, 0, 0))
Run Code Online (Sandbox Code Playgroud)
您可以在创建新表面时启用附加功能。设置该SRCALPHA标志以创建具有包含每像素 Alpha 的图像格式的表面。像素的初始值为(0,0,0,0):
my_surface = pygame.Surface((width, height), pygame.SRCALPHA)
Run Code Online (Sandbox Code Playgroud)
用于创建具有提供每像素 Alpha 的图像格式的Surfaceconvert_alpha()副本。
但是,如果创建新曲面并使用convert_alpha(),则 Alpha 通道最初设置为最大值。像素的初始值为(0,0,0,255)。您需要先用透明颜色填充整个表面,然后才能在其上绘制任何内容:
my_surface = pygame.Surface((width, height))
my_surface = my_surface.convert_alpha()
my_surface.fill((0, 0, 0, 0))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24808 次 |
| 最近记录: |