Что такое формат OpenGl для Bitmap.getPixels () в Android? - PullRequest
3 голосов
/ 21 апреля 2011

Bitmap.getPixels() возвращает целочисленный массив со значениями пикселей, возвращенными в формате «упакованное целое число», описанным в документации для Color.

Этот формат A, R, G, B.

Я хочу передать этот массив GLES10.glTexImage2D(). Я попытался указать internalFormat и format как GL_RGBA. Но это приводит к замене синего и красного каналов.

Я не смог найти эквивалент Opengl, который описывает этот формат.

<Ч />

Кроме того, я могу поменять местами каналы R и B, используя побитовые операции, чтобы соответствовать GL_RGBA, но предпочел бы, чтобы OpenGl мог распознавать формат изначально.

<ч /> Обновление: Я знаю, что могу использовать растровое изображение напрямую с TexImage2D(), но мне нужно вызвать getPixels(), потому что мне нужно манипулировать данными пикселей, прежде чем использовать их в качестве текстуры. Я могу преобразовать пиксели обратно в растровое изображение, но, как я уже сказал, я бы предпочел использовать пиксели непосредственно в качестве текстуры.

1 Ответ

0 голосов
/ 21 апреля 2011

Вам не нужно ни получать пиксели, ни иметь дело с базовыми форматами пикселей, просто передайте объект Bitmap в утилиту GLUtils.texImage2D () .

например:

Bitmap bitmap = BitmapFactory.decodeResource(...);
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...