我正在尝试在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格式输出严重裁剪的图像。
答案 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()
进行了平滑缩放并计算了覆盖像素的颜色的面积平均值。