python - 截图然后blit它

标签 python image python-3.x pygame screenshot

有没有办法从 GUI 中使用 pygame 截取屏幕截图(前一帧 blit 的副本),将其分配给表面变量并 blit 它?没有将屏幕截图保存到文件,然后加载它,最后 blitting,

import pygame, os

pygame.init()
screen = pygame.display.set_mode((800, 400))

def TakeScreenShot(screen):
    pygame.image.save(screen, 'ScreenShot.png')
    pic = pygame.image.load(os.path.join('ScreenShot.png')).convert()

    return pic

pic = TakeScreenShot(screen)
screen.blit(pic, [0,0])
pygame.display.flip()

保存屏幕截图然后加载似乎真的没必要...有没有办法绕过这个并直接 blit 截取到 GUI 的屏幕截图?

例如,

import pygame, os

pygame.init()
screen = pygame.display.set_mode((800, 400))
pic = screen.getLastFrameBlitted()
screen.blit(pic, [0,0])
pygame.display.flip()

最佳答案

您可以随时复制屏幕并将其保存在变量中。

screenshot = screen.copy()

screen 只是一个普通的 Surface 对象,可以这样对待。 Blits 截图像往常一样完成

screen.blit(screenshot, (0, 0))

关于python - 截图然后blit它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47830982/

相关文章:

python - 试图在两个日期列之间进行区分

css - 4 背景,底部是否有不需要的填充?

python - Pyspark 错误 : Java gateway process exited before sending its port number

python - 树莓派导入错误: No module named servicebus

pycurl 和 openssl 的 Python 问题

python - 在 scikit-image 中将轮廓转换为 numpy 数组掩码的有效方法?

php - 在 gridview yii2 中设置宽度图像

php - 使用PHP GD库更改图像的 “Saturation”?

python - 如何计算某些连续日期范围的汇总统计数据

python - 如何在控制台的最后一行和倒数第二行之间打印?