什么是PixelFormat.RGBX_888

时间:2015-09-02 08:21:28

标签: android rgba pixelformat

正如标题所说,有谁知道什么是RGBX_8888像素格式?和RGBA_8888有什么区别? RGBA_8888是否提供alpha通道但RGBX_8888不提供?

不幸的是,Android文档没有提供太多关于此的信息。

感谢。

1 个答案:

答案 0 :(得分:8)

RGBX表示像素格式仍然具有Alpha通道,但它被忽略,并始终设置为255.

一些参考:

Blackberry PixelFormat (它不是android,但我猜这些命名约定在不同平台上保持相同。)

RGBX 32位RGB格式作为8个红色位,8个绿色位,8个蓝色位和8个忽略位存储在存储器中。

Android 4.1.2 source code(texture.cpp)第80行

有一个名为PointSample的函数,它根据模板格式和传递的参数进行采样。你可以看到,在pixelformat RGBX_8888,alpha通道被忽略并设置为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;
}