Сохраните созданный образ в файловую систему python и pygame

avatar
Gamaray
16 августа 2021 в 14:21
298
1
0

Я разрабатываю программное обеспечение в pygame, которое позволяет пользователю рисовать на холсте, используя разные цвета, размеры пера и т. д. Проблема в том, что я не знаю, как сохранить то, что они нарисовали, как изображение (например, png).

Мне нужен способ кадрирования области, где изображение находится на экране, и сохранения его в файловой системе устройства. Кто-нибудь знает, как мне это сделать?

Источник

Ответы (1)

avatar
Rabbid76
16 августа 2021 в 15:22
3

Отображение (окно) PyGame связано с объектом pygame.Surface. Используйте pygame.image.save() для сохранения содержимого Surface (или экрана) в растровое изображение. Тип файла автоматически определяется расширением файла:

pygame.image.save(screen, "my_file.png")

Если вы просто хотите сохранить часть экрана, вы можете определить подповерхность, напрямую связанную с исходной поверхностью, с помощью метода subsurface:

subsurface(Rect) -> Surface

Возвращает новую поверхность, которая имеет общие пиксели со своим новым родителем. Новый Surface считается потомком оригинала. Изменения любых пикселей поверхности будут влиять друг на друга.

Создайте подповерхность и сохраните ее в файл:

rect_area = pygame.Rect(x, y, width, height)
area_surf = screen.subsurface(rect_area)
pygame.image.save(area_surf, "my-file.png")
Gamaray
16 августа 2021 в 17:06
1

Великолепно, спасибо за помощь, теперь добавим опцию отмены (не могу дождаться)