如何在PyGame上正确缩放图像而不会严重裁剪?

时间:2019-03-24 01:30:37

标签: python pygame

我正在尝试在pygame上重新缩放图像,但它会裁剪图像,我只是想更改图像的像素宽度和高度。

我使用pygame.transform.scale并使用1900、600作为参数,原始图像是1920x1080

mainmenu = pygame.image.load("Main_Menu.png")
mainmenu = pygame.transform.scale(mainmenu, (1900,600))
screen.blit(background, (0, 0))

我希望图像可以重新缩放为1900x600图像,但会以1900x600格式输出严重裁剪的图像。

1 个答案:

答案 0 :(得分:1)

您必须使用pygame.transform.smoothscale()而不是pygame.transform.scale()
使用convert()convert_alpha()将表面转换为像素格式正确的表面

mainmenu = pygame.image.load("Main_Menu.png")
mainmenu = pygame.transform.smoothscale(mainmenu.convert_alpha(), (1900,600)) 
screen.blit(background, (0, 0))

尽管scale()进行了尽可能快的缩放操作,但是smoothscale()进行了平滑缩放并计算了覆盖像素的颜色的面积平均值。