如何在没有被严重裁剪的情况下在PyGame上正确地重新缩放图像?

问题描述 投票:1回答:1

我试图在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格式的严重裁剪图像。

python pygame
1个回答
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()可以平滑地缩放并计算覆盖像素的颜色的面积平均值。

© www.soinside.com 2019 - 2024. All rights reserved.