Задать вопрос
yarmolchuk
@yarmolchuk
iOS developer

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

Всем привет.
Интересует вопрос по OpenGL.
Как получить RGB-массив пикселей из картинки? Именно только три цвета, без альфы.
  • Вопрос задан
  • 3397 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    iOS-разработчик
    10 месяцев
    Далее
  • Нетология
    iOS-разработчик с нуля
    11 месяцев
    Далее
  • LearnQA
    Автоматизатор мобильных приложений
    9 недель
    Далее
Пригласить эксперта
Ответы на вопрос 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.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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