Как правильно изменить масштаб изображения в PyGame без его обрезки? - PullRequest
1 голос
/ 24 марта 2019

Я пытаюсь изменить масштаб изображения в 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 Ответ

1 голос
/ 24 марта 2019

Вы должны использовать 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() плавно масштабируется и вычисляет средние значения площади цветов, которые покрывают пиксели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...