在pygame中将两个图像合并为一个

时间:2014-06-24 08:36:31

标签: python pygame

我有一个程序,它采用两个不同的图像 - 一个是瓷砖纹理(32x32),没有空白/透明斑点,第二个是具有透明像素的效果(裂缝效果),它也是32x32。 从这两张图片我想制作一张。

我尝试将第二张图片放在第一张图片上,但它不起作用(我不会让透明度在其中工作)

首先 - 如何使用pygame(任何颜色键)和不同的不透明度来处理图像的透明度。 第二件事是 - 我如何合并它们?

1 个答案:

答案 0 :(得分:4)

To" merge"两个图像,只是将第二个图像放到第一个图像上。

鉴于这两张图片(1.png2.png

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()

结果:

enter image description here

如果这对您不起作用,则表面可能具有不同的像素格式。通过在每个表面上调用convert_alpha来解决此问题。

如果您的问题是使用颜色键混合曲面和每像素透明度的曲面,请查看此answer