После загрузки изображения вам нужно будет включить альфа-канал на Surface
. это будет выглядеть примерно так:
background = pygame.Display.set_mode()
myimage = pygame.image.load("path/to/image.bmp").convert_alpha(background)
Это загрузит изображение и немедленно преобразует его в формат пикселей, подходящий для альфа-смешивания на поверхности дисплея. Вы можете использовать какую-то другую поверхность, если вам нужно перевести в другой, внеэкранный буфер в другом формате.
Вы можете установить альфа на пиксель достаточно просто, скажем, у вас есть функция, которая принимает 3-кортеж для значения цвета RGB и возвращает желаемый 4-кратный набор цвета RGBA + альфа, вы можете изменить поверхность на пиксель:
def set_alphas(color):
if color == (255,255,0): # magenta means clear
return (0,0,0,0)
if color == (0,255,255): # cyan means shadow
return (0,0,0,128)
r,g,b = color
return (r,g,b,255) # otherwise use the solid color from the image.
for row in range(myimage.get_height()):
for col in range(myimage,get_width()):
myimage.set_at((row, col), set_alphas(myimage.get_at((row, col))[:3]))
Есть и другие, более полезные способы сделать это, но я надеюсь, что это дает вам идею.