2015-09-02 13 views
3

Как говорится в названии, кто-нибудь знает, что такое формат RGBX_8888? и в чем разница с RGBA_8888? RGBA_8888 предлагает альфа-канал, но RGBX_8888 нет?Что такое PixelFormat.RGBX_888

Документация по android не предоставляет много информации об этом, к сожалению.

Спасибо.

ответ

5

RGBX означает, что формат пикселя еще имеет альфа-канал, но он игнорируется, и всегда имеет значение 255.

некоторые ссылки:

Blackberry PixelFormat (Это не андроид, однако я предположим, что соглашения об именах остаются такими же на всех платформах.)

Формат RGBX 32 бит RGB хранится в памяти как 8 красных битов, 8 зеленых битов, 8 синих битов и 8 игнорируемых бит.

Android 4.1.2 source code (texture.cpp) Линия 80

Существует функция называется PointSample, где образцы на основе формата шаблона, и передаваемые параметры. Вы можете видеть, что в pixelformat RGBX_8888 альфа-канал игнорируется и устанавливается на 255, тогда как в RGBA_8888 он обычно выбирается.

if (GGL_PIXEL_FORMAT_RGBA_8888 == format) 
    *sample = *(data + index); 
else if (GGL_PIXEL_FORMAT_RGBX_8888 == format) 
{ 
    *sample = *(data + index); 
    *sample |= 0xff000000; 
}