Ser*_*ial 5 python pygame screenshot crop
有没有办法可以截取我的pygame窗口的右半部分?
我正在使用pygame制作游戏,我需要拍摄屏幕的快照,而不是整个屏幕,只是右半部分.
我知道:
pygame.image.save(screen,"screenshot.jpg")
Run Code Online (Sandbox Code Playgroud)
但这将包括图像中的整个屏幕.
有没有办法可以截取我的pygame窗口的右半部分?
也许通过某种方式改变它所包含的区域?我用Google搜索了但是找不到任何我想的东西也许我可以使用PIL裁剪它,但这似乎是很多额外的工作.
如果不可能,有谁可以告诉我最简单的方法来裁剪整个屏幕的图片?
Haz*_*Haz 11
如果您始终希望屏幕截图与屏幕的相同部分相同,则可以使用subsurface
.
http://www.pygame.org/docs/ref/surface.html#pygame.Surface.subsurface
rect = pygame.Rect(25, 25, 100, 50)
sub = screen.subsurface(rect)
pygame.image.save(sub, "screenshot.jpg")
Run Code Online (Sandbox Code Playgroud)
该subsurface
会在这种情况下工作得很好,因为父表面的任何改变(screen
在这种情况下)将被施加到液面为好.
如果你想能够指定屏幕的任意部分来截取(因此,每次都不是相同的矩形)那么创建一个新的表面可能会更好,将屏幕的所需部分blit到那个表面,然后保存.
rect = pygame.Rect(25, 25, 100, 50)
screenshot = pygame.Surface(100, 50)
screenshot.blit(screen, area=rect)
pygame.image.save(screenshot, "screenshot.jpg")
Run Code Online (Sandbox Code Playgroud)