Как обрезать изображение с помощью Pygame?
Я изучаю pygame
и хочу графику для кнопки с тремя состояниями: нормальным, зависающим и нажатым. У меня есть изображение, подобное этому...
![Three button states, stacked vertically]()
... и я хочу получить новый Surface
, используя его часть.
Я загружаю изображение с помощью этого кода:
buttonStates = pygame.image.load(os.path.join('image','button.png'))
Как я могу создать новую поверхность, используя только часть этой графики?
Ответы
Ответ 1
cropped = pygame.Surface((80, 80))
cropped.blit(buttonStates, (0, 0), (30, 30, 80, 80))
Бледный метод на поверхности "приклеивает" к нему другую поверхность. Первым аргументом blit является исходная поверхность. Второй - это место для вставки (в данном случае, левого верхнего угла). Третий (необязательный) аргумент - это область исходного изображения для вставки из - в этом случае квадрат размером 80x80 30px сверху и 30px слева.
Ответ 2
Я думаю, что лучший способ сделать это - обрезать изображение этих трех типов кнопок во внешней программе и загрузить на другой поверхности, вместо этого использовать pygame, чтобы обрезать его