Как изменить вывод в формате .png из Python на вывод в окне OpenGL?

#python #image

#python #изображение

Вопрос:

У меня есть код Python, вывод которого представляет собой файл .png. Что я должен сделать, чтобы получить вывод в окне OpenGL? Я поискал в нескольких местах, и самым близким, что у меня получилось для преобразования изображения, был StringIO (), но это не показалось мне очень полезным.

Комментарии:

1. как насчет использования glReadPixel()?

2. glReadPixel () изначально не работает с PNG. Вам все равно нужно будет преобразовать его в совместимый формат.

Ответ №1:

Прежде всего, вам нужны привязки OpenGL для создания окна OpenGL. Попробуйте PyOpenGL

Следующий шаг — посмотреть на код. Я предполагаю, что создается какой-то объект изображения, затем на нем что-то рисуется и, наконец, изображение сохраняется в формате PNG.

На этом этапе вам нужно преобразовать данные изображения (подробности см. в документах) во что-то, что PyOpenGL может отображать. Пример в конце этой страницы должен помочь вам начать.

Ответ №2:

Если вы хотите что-то для обработки более сложных деталей, вы могли бы настроить свой OpenGL с помощью pygame, затем используйте

surface = pygame.image.load(fileobj)

Где fileobj — это любой объект с «файлоподобным» интерфейсом. Вам нужно будет модифицировать генератор PNG для записи в этот объект, а не в реальный файл.