Я работаю над существующим кодом для проекта, которому я назначен.
У меня успешный звонок на glTexImage2D
, например:
glTexImage2D(GL_TEXTURE_2D, 0, texture->format, texture->widthTexture, texture->heightTexture, 0, texture->format, texture->type, texture->data);
Я хотел бы создать изображение (предпочтительно CGImage
или UIImage
), используя переменные, переданные в glTexImage2D
, но не знаю, возможно ли это.
Мне нужно создать много последовательных изображений (многие из них в секунду) из представления OpenGL и сохранить их для дальнейшего использования.
Могу ли я создать CGImage
или UIImage
, используя переменные, которые я использую в glTexImage2D
?
Если я смогу, как мне это сделать?
Если нет, то почему я не могу и что вы предлагаете для моей задачи сохранения / захвата содержимого моего представления opengl много раз в секунду?
edit: я уже успешно сделал снимки, используя некоторые методы, предоставленные Apple с glReadPixels
и т. Д. И т. Д. Я хочу что-то быстрее, чтобы я мог получать больше изображений в секунду.
edit: после просмотра и добавления кода от Thomson, вот изображение:
изображение очень немного напоминает то, как оно должно выглядеть, за исключением дублирования ~ 5 раз по горизонтали и с некоторым случайным черным пространством внизу.
примечание: данные видео (каждый кадр) поступают через специальное сетевое соединение с iPhone. я считаю, что камера снимает каждый кадр с цветовым пространством YCbCr
редактировать: дальнейшее рассмотрение кода Томсона
Я скопировал ваш новый код в свой проект и в результате получил другое изображение:
ширина: 320
высота: 240
Я не уверен, как найти количество байтов в текстуре-> данных. это пустой указатель.
редактировать: формат и тип
texture.type = GL_UNSIGNED_SHORT_5_6_5
texture.format = GL_RGB