【发布时间】:2021-08-16 14:21:59
【问题描述】:
我正在pygame 开发一些软件,允许用户使用不同的颜色、笔大小等在画布上绘制东西。问题是我不知道如何将他们绘制的东西保存为图像(例如 png)。
我需要一种方法来框定屏幕上图像所在的区域并将其保存到设备的文件系统中。有谁知道我该怎么做?
【问题讨论】:
我正在pygame 开发一些软件,允许用户使用不同的颜色、笔大小等在画布上绘制东西。问题是我不知道如何将他们绘制的东西保存为图像(例如 png)。
我需要一种方法来框定屏幕上图像所在的区域并将其保存到设备的文件系统中。有谁知道我该怎么做?
【问题讨论】:
PyGame 显示(窗口)与pygame.Surface 对象相关联。使用pygame.image.save() 将Surface(或屏幕)的内容存储到位图中。文件类型由文件扩展名自动确定:
pygame.image.save(screen, "my_file.png")
如果你只想保存屏幕的一部分,你可以定义一个直接链接到源表面的子表面,使用方法subsurface:
subsurface(Rect) -> Surface返回一个与其新父级共享其像素的新 Surface。新 Surface 被视为原始 Surface 的子级。对任一 Surface 像素的修改都会相互影响。
创建子表面并将其保存到文件中:
rect_area = pygame.Rect(x, y, width, height)
area_surf = screen.subsurface(rect_area)
pygame.image.save(area_surf, "my-file.png")
【讨论】: