yarmolchuk
@yarmolchuk
iOS developer

OpenGL. Как получить RGB-массив пикселей из картинки?

Всем привет.
Интересует вопрос по OpenGL.
Как получить RGB-массив пикселей из картинки? Именно только три цвета, без альфы.
  • Вопрос задан
  • 3384 просмотра
Пригласить эксперта
Ответы на вопрос 1
@RPG
В OpenGL текстура загружается в видеопамять из оперативной, намного проще просто не удалять исходную текстуру из памяти.

Есть смысл из OpenGL выгружать фреймбуфер как результат работы какого-то шейдера, тогда это просто делается функциями:

glBindFramebuffer(GL_FRAMEBUFFER_EXT, framebuffer->id);
glBindTexture(GL_TEXTURE_2D, framebuffer->image->id);
glReadBuffer(GL_COLOR_ATTACHMENT0_EXT);
GLubyte* img = (GLubyte*) malloc(framebuffer->w * framebuffer->h * sizeof(GLubyte) * 3);
glReadPixels(0, 0, framebuffer->w, framebuffer->h, GL_RGB, GL_UNSIGNED_BYTE, img);

img - заранее созданный массив необходимой длины. Надо заметить, что этот способ очень медленный и годится только для разовой выгрузки текстуры.

Для iOS смысл тот же, просто функции меняются на *OES.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы