我有一个程序需要两个不同的图像-一个是没有空白/透明斑点的平铺纹理(32x32),第二个是具有透明像素的效果(裂纹效果),它也是32x32。我想从这两张图片中拍一张。
我尝试将第二个图像放置在第一个图像上,但是它不起作用(我不让透明度起作用)
首先-如何在pygame(任何颜色键)和不同的不透明度的图像上获得透明度。第二件事是-如何合并它们?
要“合并”两个图像,只需将第二个图像变灰到第一个图像上即可。
给定这两个图像(1.png
,2.png
)
这是一个例子:
import pygame
pygame.init()
screen = pygame.display.set_mode((200, 50))
image = pygame.image.load("1.png")
shadow = pygame.image.load("2.png")
merged = image.copy()
merged.blit(shadow, (0, 0))
while True:
screen.fill(pygame.color.Color('white'))
for event in pygame.event.get():
if event.type == pygame.QUIT:
raise
screen.blit(image, (0, 0))
screen.blit(shadow, (50, 0))
screen.blit(image, (100, 0))
screen.blit(shadow, (100, 0))
screen.blit(merged, (150, 0))
pygame.display.flip()
结果:
如果这不适合您,则您的表面可能具有不同的像素格式。通过convert_alpha
在每个表面上调用来解决此问题。
如果您的问题在于混合使用颜色键的表面和按像素透明度的表面,请查看此答案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句