gpt4 book ai didi

python - 如何将pygame场景保存为jpeg?

转载 作者:行者123 更新时间:2023-12-02 16:17:46 26 4
gpt4 key购买 nike

我需要做以下事情。我使用 OBJFileLoader 加载了一个对象模型并将其渲染到一个窗口。如何将渲染的场景保存为图片?是否可以在不显示窗口的情况下执行此操作?

最佳答案

你可以保存一个pygame.Surface对象,对象作为与屏幕关联的 Surface pygame.image.save() :

This will save your Surface as either a BMP, TGA, PNG, or JPEG image.

screen = pygame.display.set_mode((w, h))

# [...]

pygame.image.save(screen , "screenshot.jpg")

但是,这不适用于 pygame.OPENGL Surface。您必须使用 glReadPixels 读取帧缓冲区在显示更新之前(在 pygame.display.flip()pygame.display.update() 之前)。使用 pygame.image.fromstring()从缓冲区创建新的 Surfaces。最后,将 Surface 保存到文件中:

screen = pygame.display.set_mode((w, h), pygame.DOUBLEBUF | pygame.OPENGL)

# [...]

size = screen.get_size()
buffer = glReadPixels(0, 0, *size, GL_RGBA, GL_UNSIGNED_BYTE)
pygame.display.flip()

screen_surf = pygame.image.fromstring(buffer, size, "RGBA")
pygame.image.save(screen_surf, "screenshot.jpg")

关于python - 如何将pygame场景保存为jpeg?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66209365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com