我有一个程序,它采用两个不同的图像 - 一个是瓷砖纹理(32x32),没有空白/透明斑点,第二个是具有透明像素的效果(裂缝效果),它也是32x32。 从这两张图片我想制作一张。
我尝试将第二张图片放在第一张图片上,但它不起作用(我不会让透明度在其中工作)
首先 - 如何使用pygame(任何颜色键)和不同的不透明度来处理图像的透明度。 第二件事是 - 我如何合并它们?
答案 0 :(得分:4)
To" merge"两个图像,只是将第二个图像放到第一个图像上。
鉴于这两张图片(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
来解决此问题。
如果您的问题是使用颜色键混合曲面和每像素透明度的曲面,请查看此answer。